0

使用 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

这是我的代码片段:

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");
    }
});

任何帮助将不胜感激!

4

3 回答 3

5

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

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

于 2013-10-23T07:25:46.990 回答
0

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

于 2013-10-23T07:04:25.410 回答
0

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

escape("It's me!") // result: It%27s%20me%21
于 2013-10-23T07:38:13.793 回答