【问题标题】:$.ajax() processing my url encoded string$.ajax() 处理我的 url 编码字符串
【发布时间】:2010-12-18 18:32:08
【问题描述】:

我有一个 url 编码字符串,我通过 jQuery AJAX API 发送到 php,它似乎正在自动解码并传递给服务器。

Ajax 调用:

var requestXML = '<searchString>red%20ford%5BimpoundState%3Ain%5D</searchString>';
$.ajax({
 data: "query=" + requestXML,
 success: function(response)
 {
     //alerts <searchString>red%20ford%5BimpoundState%3Ain%5D</searchString>
     alert(requestXML);
 }
});

在 chrome 开发工具中检查请求显示它正在被解码

我有点迷路了,我阅读了一些关于 jQuery 处理数据的信息,但我通过{processData: false} 关闭了它,但我没有得到任何结果。

-感谢您的帮助!

更新:

我的后端当前设置为使用 url 编码值解析 xml。

点赞:&lt;searchString&gt;red%20ford%5BimpoundState%3Ain%5D&lt;/searchString&gt;

当我通过data: {query: requestXML} 我得到...

This:%3CsearchString%3Ered%20ford%5BimpoundState%3Ain%5D%3C%2searchString%3E(url 编码的 xml)。

真正的问题是,当我生成这个 XML 时,我对值进行了编码,但 jQuery 似乎在请求中对它们进行了解码。

【问题讨论】:

    标签: jquery ajax urlencode


    【解决方案1】:

    您可以使用data: {query: requestXML}, 传递参数,它们会得到 jQuery 编码的 url。

    关键是如果参数已经是字符串,则参数会按原样附加到 url。

    引用

    数据对象,字符串

    要发送到服务器的数据。这是 转换为查询字符串,如果不是 已经是一个字符串。它附加到 GET 请求的 url。见流程数据 防止这种自动的选项 加工。对象必须是键/值 对。如果值是一个数组,jQuery 序列化多个相同的值 基于值的键 传统设置(如下所述)。

    由于您使用GET 方法,您的参数被添加到 URL 字符串中。然后从浏览器而不是 jQuery 进行解码。

    【讨论】:

    • 不...我没有使用 get 方法。虽然我的代码没有反映这一点(并非所有 ajaxoptions 都包括在内),但我明确将其设置为在 ajax 调用中发布。
    • @Derek.. 嗯。你还在用{processData: false}
    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-08-11
    • 2013-01-23
    • 2011-06-26
    • 2015-09-13
    相关资源
    最近更新 更多