4

我尝试使用 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)
            {   

            }               
}); 

问候,

大卫

4

4 回答 4

3

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

于 2009-09-21T09:21:51.507 回答
1

这种类型的问题有时很难调试,因为有太多组件涉及您的数据,并且每个组件都需要自己的引用或转义样式,以确保您的数据按预期通过。

首先要做的是确保数据正确地到达 ajax 函数。就在 ajax 函数之前,使用console.logoralert()来查看数据的样子。根据数据的来源,在那个时候它甚至可能不正确。

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

基本上,您必须从数据开始的地方走整条路径,到数据错误的地方,并找到它出现错误转弯的点。

于 2009-09-21T10:00:23.613 回答
-1

假设objinencodeURIComponent(JSON.stringify(obj))是一个字符串或一个 json 对象,那么你的脚本应该可以工作。

如果obj = {'data':'<p>test</p>'};那时你不需要encodeURIComponent你可以做data: JSON.stringify(obj)

代码还有更多吗,如果您可以发布它可能会有所帮助。

于 2010-04-21T13:45:10.543 回答
-2

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

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

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

希望这能更好地帮助你。

于 2010-04-26T05:54:34.277 回答