我尝试使用jQuery进行AJAX调用,数据有特殊字符,例如{'data':'<p>test</p>'}
。它似乎首先未能传递这些数据。如果我只是通过{'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)
{
}
});
此致
大卫
答案 0 :(得分:3)
我在firebug中给了这个快速测试,它实际上工作得很好,数据被发送和所有内容,所以听起来你的问题与ajax调用本身无关,而是与你发布的函数有关。
答案 1 :(得分:1)
这类问题有时候很难调试,因为很多组件都会触及你的数据,每个组件都需要自己的引用或转义方式,以确保你的数据按照你的预期通过。
要做的第一件事是确保数据正确地进入ajax功能。就在ajax函数之前,使用console.log
或alert()
来查看数据的外观。根据数据的来源,此时甚至可能不正确。
您可以使用Firebug的Net面板查看实际向服务器发出的请求,以查看离开浏览器的数据。如果您有权访问服务器,则可以在ajax函数处理程序中进行调试,以查看它收到的数据。
基本上,你必须从数据开始的地方走到整个路径,到数据出错的地方,并找到错误转向的点。
答案 2 :(得分:-1)
假设obj
中的encodeURIComponent(JSON.stringify(obj))
是一个字符串或一个json对象,那么你的脚本应该可以工作。
如果obj = {'data':'<p>test</p>'};
那么您不需要encodeURIComponent
就可以data: JSON.stringify(obj)
代码还有什么,如果你可以发布它可能会有更多帮助。
答案 3 :(得分:-2)
我不是一个asp开发人员,但是我通过jquery ajax处理html帖子时遇到了同样的问题我曾经这样发帖:
var data = 'id='+ escape(currid) +'&html='+ escape(div_html);
$.post("http://...", data, ...);
希望这会对你有所帮助。