【问题标题】:How do I send brackets "%5B" "%5D" as params on an Ajax Request using GET as method?如何使用 GET 作为方法在 Ajax 请求中发送方括号“%5B”“%5D”作为参数?
【发布时间】:2013-10-23 06:38:49
【问题描述】:

使用 Ajax 和方法 GET,我试图发送一个带括号的 url,但我没有得到正确的编码:

Request URL:http://myurl/search.html?_dc=1382510050331&search%5Bpostcode%5D=96231

代替:

Request URL:http://myurl/search.html?_dc=1382510050331&search[postcode]=96231

错误:

Status Code:502 Host not found

这是我的代码的 sn-p:

Ext.Ajax.request({
    url: 'http://myulr.lan/fpsearchjson.html',
    method: 'GET',
    params: {
        "geosearch[postcode]":91111
    },
    success: function(response){
        console.log("success");
    },
    failure: function(response){
        console.log("failure");
    }
});

任何帮助将不胜感激!

【问题讨论】:

  • 错误在哪里? %5B 和 %5D 应该可以很好地解码为 [] 。在任何网络服务器中。 %xx 用于任何需要编码的字符。
  • 状态码:502 找不到主机。
  • 你能telnet到服务器吗? telnet my.server.com 80
  • 你是对的! %5B 和 %5D 解码正常。
  • 我认为 dns 名称有误,或者在发送到服务器的过程中出现了某些问题。你能以任何方式到达服务器的任何部分吗?

标签: javascript ajax url get brackets


【解决方案1】:

%5B%5D[] 的 url 编码值。这应该像在您的示例中一样进行编码。

问题似乎是您无法访问服务器。尝试以任何方式访问服务器。也许在你喜欢的浏览器中打开 URL 或 telnet 到它:telnet my.server.com 80

【讨论】:

    【解决方案2】:

    您需要转换您的 Get 请求,虽然 ajax 应该首先转换为 ASCII,同样的问题发生在我身上,我解决了它,但将我的 GET 请求转换为 ASCII 并再次解码以供使用:)

    【讨论】:

      【解决方案3】:

      您可以使用转义函数对您的 url 和参数进行编码、解码。另一方面,您可以轻松地以原始格式获得该值
      例如

      escape("It's me!") // result: It%27s%20me%21
      

      【讨论】:

        猜你喜欢
        • 2015-09-07
        • 2023-02-07
        • 2020-12-07
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-25
        • 2018-07-18
        相关资源
        最近更新 更多