jquery的ajax编码问题引发error

原创 2012年03月30日 15:45:03

今天在修改程序的时候,发现jquery的ajax函数在向后台发送中文或者德文等字符的时候会出错。不是返回错误,而是直接跳到error那去了。

先看代码:

$("#btn_save").click(
	function()//save
	{
		var shareName =$("#txt_sharename").val();
		if(shareName !="")
		{
			$("#dialog_wait").dialog("open"); 
			$.ajax({
					url: "/share/rename/",
					type: 'POST',
					data:{"shareName":shareName},
					dataType: 'xml',
					timeout: 50000,
					error: function(){
						$("#dialog_wait").dialog("close"); 
						alert('Error loading XML document');
					},
					success: function(xmldata){
						var errCode = JQXML.getDataForXML($(xmldata),JQXML.ERROR_CODE);
						if(errCode ==0)//success
						{
							//operation success
						}
						else
						{
							//operation failure
						}	
					}
				});
				
		}
		else
		{
                   //no share name
		}
	});

加入成功会跑success那的代码,但是现在偏偏是跑error那的代码,输入中文或者德文会这样,如果是英文则没有这个问题。

初步判定是编码问题,对获取的值进行编码:

//encoding sharename
		var shareName =escape($("#txt_sharename").val());

再次发送,问题解决。

同时,在使用得到的值得时候需要解码:

//decode sharename
	var sharename=unescape($("#txt_sharename").val());

这里加入一些escape的知识:

escape采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。


在加些jquery ajax函数的知识:

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。


语法

jQuery.ajax([settings])

更多关于jQuery.ajax()函数的信息,请看http://www.w3school.com.cn/jquery/ajax_ajax.asp



版权声明:本博客已经不再更新,新博客地址:www.imbeta.cn,欢迎来访。微信公众号:程序员的诗和远方。公众号ID : MonkeyCoder-Life~~本文为博主原创文章,未经博主允许不得转载。

jquery ajax方法提交json格式数据报错,一直返回error问题-已解决

这段时间在研究ajax交互,由于不是很理解,再加上网上学习资料描述的些许专业,理解不了。于是就本着探究的精神,自己做了一个表单提交,反复测试、揣摩、思考;遇到问题就上网搜,各种小问题不断,但就是这些小...
  • jiyanle
  • jiyanle
  • 2015年04月23日 21:48
  • 1670

jQuery ajax一直调用error方法,问题解决

首先说原因,然后再说具体情况: 原因一:返回的json格式不对。 原因二:在返回数据之前不能有任何的输出,包括打开调试。例如:后端用的是php,像在返回json数据之前,echo,var_dump...

jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录

先上代码 jQuery AJAX

jquery ajax satus为200却出现进入error回调函数

//请求载入文件数据 var loadFile=function(){ $.ajax({ url:'filePreView.do', data:{'id':id,'md5':md5}, ...

Jquery $.ajax 莫名其妙出错(Firefox下一直到error,返回结果又正常)

Jquery $.ajax 莫名其妙出错:Firefox下一直到error,返回结果又正常。IE却能够正常执行,原因可能出现在文件编码上面...
  • cen_cs
  • cen_cs
  • 2015年04月08日 15:55
  • 967

jquery mobile ajax页面跳转出现(error load page的错误)及js与css失效的说明和处理

简要说明 jqm的ajax页面跳转,实际上是通过一个ajax请求,将目标页面的  以内的dom结构复制过来 假如有a.html,b.html二个页面,a的源页面,b是目标页面 1.可以知道a页面必然...

JQuery ajax请求一直返回Error(parsererror)

$.ajax({ type :"post", url :"busine_in.action", timeout : 40000, data: "centerid...
  • enterys
  • enterys
  • 2012年06月08日 17:36
  • 90046

jquery ajax参数加点号状态200进error

今天开发中遇到一个很恶心的问题: 用jquery中的ajax提交,发现如果参数中有点号的参数,后台正常返回200状态码的情况下也会走到error:function。 1. 参数data: "top...
  • subuser
  • subuser
  • 2015年07月10日 18:22
  • 2390

jquery ajax error函数详解

$(document).ready(function() { jQuery("#clearCac").click(function() { jquery.ajax({ ...

jquery ajax error:function调试信息

代码:$(document).ready(function() {             jQuery("#clearCac").click(function() {              ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jquery的ajax编码问题引发error
举报原因:
原因补充:

(最多只允许输入30个字)