`
032615
  • 浏览: 61013 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JQuery.ajax传递中文参数的解决方法

阅读更多

许多人在使用JQuery.ajax方法时肯定会遇到一个问题。在编码不是UTF-8的时候,当传递的参数里有中文的时候,服务端Request的时候都会出现乱码。本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。

 

我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题。于是将Prototype和JQuery代码都下载下来打开研究原因。具体结果如下

diyblPic

 

不同之处在于JQuery默认的contentType:application/x-www-form-urlencoded

而Prototype则是contentType:application/x-www-form-urlencoded; charset=UTF-8

这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1

ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。

JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。

而我们的UTF-8则可以解决这一问题。

 

最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。

修改如图:

diyblPic

 

只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。

 

分享到:
评论

相关推荐

    JQuery.ajax传递中文参数的解决方法 推荐

    总结起来,解决JQuery.ajax传递中文参数乱码问题的核心在于: 1. 在`$.ajax`设置中指定`contentType: "application/x-www-form-urlencoded; charset=UTF-8"`。 2. 服务器端的页面响应编码(如ASP.NET的`...

    真正的JQuery.ajax传递中文参数的解决方法

    总结来说,当遇到JQuery ajax传递中文参数时出现乱码问题,开发者需要在ajax请求中显式声明contentType为`application/x-www-form-urlencoded;charset=UTF-8`。这样,无论页面编码是什么,中文数据都能被正确编码和...

    jquery.ajax 传参数到mvc的action

    本篇文章将深入探讨如何使用jQuery的ajax方法向ASP.NET MVC的Action传递参数。 首先,了解jQuery的ajax方法的基本结构。这是一个示例: ```javascript $.ajax({ url: 'yourUrl', type: 'POST', // 或 'GET' ...

    Jquery.json.js

    jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...

    jquery.PrintArea.js-2.4.0-打印功能.rar

    3. **高级配置**:若需自定义打印设置,可传递参数给`.printArea()`: ```javascript $("#printableArea").printArea({ mode: "iframe", // 默认模式,还有"popup"可选 type: "html", // 默认类型,也可以是"css...

    前端项目-jquery.fileDownload.zip

    例如,你可以使用`.fileDownload()`方法触发文件下载,并传递URL和一些可选参数。在处理文件下载时,还可以监听各种回调事件,以便进行状态跟踪和错误处理。 总的来说,"前端项目-jquery.fileDownload.zip"为前端...

    jquery ajax 向后台传递数组参数示例

    本文将深入讲解如何在jQuery AJAX中向后台传递数组参数,并提供示例代码。 首先,理解问题的关键在于JavaScript数组在传递给后台时,如果数组内包含的是对象,会被转化为`[object Object]`的字符串形式。这是因为...

    jquery.params.js

    "jquery.params.js"是一个特定的jQuery插件,专门用于处理URL参数,使得在进行Ajax请求或者页面跳转时,传递参数变得更加方便。 首先,我们要了解URL参数的基本概念。URL(统一资源定位符)是网页地址,它通常由...

    $.ajax json数据传递方法.docx

    $.ajax json 数据传递方法是使用 jQuery 库实现的异步数据传递方法,通过将 JSON 数据封装在 $.ajax 对象中,并将其作为参数传递给服务器端脚本,以实现客户端和服务器端之间的数据交互。 在前台代码中,首先定义了...

    jquery.messager.js

    《jQuery Messager.js:构建高效页面底层弹出框的利器》 在网页开发中,用户交互体验至关重要,其中一种常见的需求就是实现各种形式的消息提示或弹窗功能。jQuery Messager.js 正是一款专为实现此类功能而设计的...

    jquery文件上传js:jquery.form.js

    - **设置参数**:可以通过`data`选项向服务器传递额外的数据,例如`$("#formId").ajaxForm({data: {key: value}});`。 - **事件监听**:插件提供了`beforeSubmit`, `uploadProgress`, `success`, `error`等事件,...

    jquery.base64.js及使用方法

    jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。使用jQuery,开发者可以更高效地编写JavaScript代码,并且兼容多种浏览器。 ### 3. 使用`jquery.base64.js` 要使用`jquery.base64....

    jQuery.Ajax()的data参数类型详解

    在jQuery的Ajax方法中,`data`参数是一个非常关键的部分,它用于传递要发送到服务器的数据。本篇文章将深入探讨`data`参数的不同类型及其使用方法。 首先,`data`参数可以接受多种类型的数据,包括JavaScript对象、...

    jquery.params.js传值插件下载

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理和Ajax交互等任务。`jquery.params.js`是一个jQuery插件,专门用于处理URL参数和在多个HTML页面间传递数据,无需通过服务器作为中介。这...

    Node.js解析ajax参数Demo

    在这个Demo中,我们假设前端使用jQuery的$.ajax()方法发送请求。 ```javascript // 前端jQuery示例 $.ajax({ url: '/api/data', type: 'POST', data: { key1: 'value1', key2: 'value2' }, success: function...

    JQuery.param

    这个功能在处理AJAX请求时尤其有用,因为浏览器通常要求URL参数以特定格式(即键值对的形式,如`key1=value1&key2=value2`)传递。在页面传参中,jQuery.param起到了关键的作用。 ### jQuery.param基本原理 jQuery...

    Jquery.jqueryzoom局部图片放大镜效果

    可以传递一些可选参数来自定义放大镜的行为,如放大倍数、放大镜的大小等。 ```javascript $("#myImage").zoom({ zoom: 3, // 放大倍数 cursor: "crosshair" // 鼠标指针样式 }); ``` 4. **布局调整**:为了...

    jquery.ui.autocomplete-Ajax

    这通常是通过`jQuery.ajax()`或者简化的`$.getJSON()`等方法完成的。以下是一个简单的示例,展示如何向服务器发送GET请求,获取JSON格式的建议数据: ```javascript source: function(request, response) { $.ajax...

Global site tag (gtag.js) - Google Analytics