许多人在使用JQuery.ajax方法时肯定会遇到一个问题。在编码不是UTF-8的时候,当传递的参数里有中文的时候,服务端Request的时候都会出现乱码。本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。
我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题。于是将Prototype和JQuery代码都下载下来打开研究原因。具体结果如下
不同之处在于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中文传递的问题。
修改如图:
只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。
分享到:
相关推荐
总结起来,解决JQuery.ajax传递中文参数乱码问题的核心在于: 1. 在`$.ajax`设置中指定`contentType: "application/x-www-form-urlencoded; charset=UTF-8"`。 2. 服务器端的页面响应编码(如ASP.NET的`...
总结来说,当遇到JQuery ajax传递中文参数时出现乱码问题,开发者需要在ajax请求中显式声明contentType为`application/x-www-form-urlencoded;charset=UTF-8`。这样,无论页面编码是什么,中文数据都能被正确编码和...
本篇文章将深入探讨如何使用jQuery的ajax方法向ASP.NET MVC的Action传递参数。 首先,了解jQuery的ajax方法的基本结构。这是一个示例: ```javascript $.ajax({ url: 'yourUrl', type: 'POST', // 或 'GET' ...
jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...
3. **高级配置**:若需自定义打印设置,可传递参数给`.printArea()`: ```javascript $("#printableArea").printArea({ mode: "iframe", // 默认模式,还有"popup"可选 type: "html", // 默认类型,也可以是"css...
例如,你可以使用`.fileDownload()`方法触发文件下载,并传递URL和一些可选参数。在处理文件下载时,还可以监听各种回调事件,以便进行状态跟踪和错误处理。 总的来说,"前端项目-jquery.fileDownload.zip"为前端...
本文将深入讲解如何在jQuery AJAX中向后台传递数组参数,并提供示例代码。 首先,理解问题的关键在于JavaScript数组在传递给后台时,如果数组内包含的是对象,会被转化为`[object Object]`的字符串形式。这是因为...
"jquery.params.js"是一个特定的jQuery插件,专门用于处理URL参数,使得在进行Ajax请求或者页面跳转时,传递参数变得更加方便。 首先,我们要了解URL参数的基本概念。URL(统一资源定位符)是网页地址,它通常由...
$.ajax json 数据传递方法是使用 jQuery 库实现的异步数据传递方法,通过将 JSON 数据封装在 $.ajax 对象中,并将其作为参数传递给服务器端脚本,以实现客户端和服务器端之间的数据交互。 在前台代码中,首先定义了...
《jQuery Messager.js:构建高效页面底层弹出框的利器》 在网页开发中,用户交互体验至关重要,其中一种常见的需求就是实现各种形式的消息提示或弹窗功能。jQuery Messager.js 正是一款专为实现此类功能而设计的...
- **设置参数**:可以通过`data`选项向服务器传递额外的数据,例如`$("#formId").ajaxForm({data: {key: value}});`。 - **事件监听**:插件提供了`beforeSubmit`, `uploadProgress`, `success`, `error`等事件,...
jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。使用jQuery,开发者可以更高效地编写JavaScript代码,并且兼容多种浏览器。 ### 3. 使用`jquery.base64.js` 要使用`jquery.base64....
在jQuery的Ajax方法中,`data`参数是一个非常关键的部分,它用于传递要发送到服务器的数据。本篇文章将深入探讨`data`参数的不同类型及其使用方法。 首先,`data`参数可以接受多种类型的数据,包括JavaScript对象、...
在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理和Ajax交互等任务。`jquery.params.js`是一个jQuery插件,专门用于处理URL参数和在多个HTML页面间传递数据,无需通过服务器作为中介。这...
在这个Demo中,我们假设前端使用jQuery的$.ajax()方法发送请求。 ```javascript // 前端jQuery示例 $.ajax({ url: '/api/data', type: 'POST', data: { key1: 'value1', key2: 'value2' }, success: function...
这个功能在处理AJAX请求时尤其有用,因为浏览器通常要求URL参数以特定格式(即键值对的形式,如`key1=value1&key2=value2`)传递。在页面传参中,jQuery.param起到了关键的作用。 ### jQuery.param基本原理 jQuery...
可以传递一些可选参数来自定义放大镜的行为,如放大倍数、放大镜的大小等。 ```javascript $("#myImage").zoom({ zoom: 3, // 放大倍数 cursor: "crosshair" // 鼠标指针样式 }); ``` 4. **布局调整**:为了...
这通常是通过`jQuery.ajax()`或者简化的`$.getJSON()`等方法完成的。以下是一个简单的示例,展示如何向服务器发送GET请求,获取JSON格式的建议数据: ```javascript source: function(request, response) { $.ajax...