1

如何防止跨域 jQuerygetJSON请求对回调问号进行编码:

$.getJSON(searchResultsURL, {
        token: jSONAPItoken,
        callback: '?'
    }, function(data){
        ……
    })

最终发送请求: http://example.com/xxx?token=tokenxxx&callback=%3F

它在哪里编码?to %3f。我怎样才能防止这种情况?

4

2 回答 2

4

你误用了getJSON.

$.getJSON要求callback参数在 URL 中,而不是data参数中。

您需要添加?callback=?到 URL 字符串;然后 jQuery 将?用自动生成的回调函数名称替换 。

于 2012-06-01T03:08:28.253 回答
0

?不是查询字符串中的有效字符,必须进行编码。但是,服务器在将其传递给您的服务器端之前对其进行解码(例如,在 PHP$_GET['callback']中将等于?

您不应该担心这一点,因为它只是格式化您的 URL 的静默操作,因此它实际上可以工作。

于 2012-06-01T03:08:10.607 回答