Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery AJAX调用未定义特殊字符错误_Jquery_Ajax_Character - Fatal编程技术网

jQuery AJAX调用未定义特殊字符错误

jQuery AJAX调用未定义特殊字符错误,jquery,ajax,character,Jquery,Ajax,Character,我尝试使用jQuery进行AJAX调用,数据具有特殊字符,例如{'data':'test'}。它似乎一开始就没能传递这些数据。如果我只通过{'data':'test'}就可以了。encodeURIComponent和JSON.stringify在此失败,原因是特殊字符/ 有人能帮忙吗?谢谢 $.ajax({ type: "POST", url: "services.aspx", data: "data=" + encodeURIComponent(JSON.stringi

我尝试使用jQuery进行AJAX调用,数据具有特殊字符,例如
{'data':'test

'}
。它似乎一开始就没能传递这些数据。如果我只通过
{'data':'test'}
就可以了。encodeURIComponent和JSON.stringify在此失败,原因是特殊字符
/

有人能帮忙吗?谢谢

$.ajax({
    type: "POST",
    url: "services.aspx",
    data: "data=" + encodeURIComponent(JSON.stringify(obj)),
    dataType: "text",
    error: function(xhr, textStatus, errorThrown)   {   
        alert("ERROR"); },
    success: function(data)
            {   

            }               
}); 
问候,


David

我在firebug中对此进行了一次快速测试,它实际上运行得很好,数据已经发送,所以听起来您的问题与ajax调用本身无关,而是与您发布到的函数有关。

这种类型的问题有时很难调试,因为有太多组件涉及到您的数据,而且每种方法都需要自己的引用或转义方式,以确保您的数据按预期的方式传递

首先要做的是确保数据正确地到达ajax函数。在ajax函数之前,使用
console.log
alert()
查看数据的外观。根据数据来自何处,在该点上甚至可能不正确

您可以使用Firebug的网络面板查看实际向服务器发出的请求,以查看离开浏览器的数据。如果您有权访问服务器,则可以在那里的ajax函数处理程序中进行调试,以查看它接收到的数据


基本上,您必须从数据开始的地方走到数据错误的地方,并找到它错误的转折点。

假设
encodeURIComponent(JSON.stringify(obj))
中的
obj
是字符串或JSON对象,那么您的脚本应该可以工作

如果
obj={'data':'test

'}
那么您就不需要
encodeURIComponent
了,只需执行
数据:JSON.stringify(obj)


如果您能发布更多的代码,可能会有更大的帮助。

我不是asp开发人员,但我在通过jquery ajax处理html帖子时遇到了同样的问题,我曾经这样发布:

var data = 'id='+ escape(currid) +'&html='+ escape(div_html);

$.post("http://...", data, ...);

希望这能更好地帮助您。

您应该使用
encodeURIComponent
,而不是
escape
——就像原来的问题一样。如果您给
数据
一个字符串,那么它需要格式化为查询字符串<代码>数据:obj可以改为使用,但不能使用
数据:JSON.stringify(obj)
谢谢你指出David,看来我的想法不太正确。