【发布时间】:2011-05-02 04:48:17
【问题描述】:
我正在尝试使用 $jQuery.get() 通过 GET 请求调用(私有)RESTful Web 服务。但是当我这样做时,我没有收到任何响应数据(尽管我确实收到了 200 OK 响应代码!)。
当我从 PHP (file_get_contents()) 进行完全相同的调用或只是将 GET URL 粘贴到我的浏览器窗口时,我会收到 (JSON) 响应。
使用 Firebug,我可以看到从 jQuery 发出请求时发送的请求标头与将 URL 粘贴到浏览器时完全没有区别。唯一的区别是 jQuery 添加了“Referer”和“Origin”标头 - 然而,我使用 Firefox 的 ModifyHeaders 扩展将这两个标头强制添加到我的直接浏览器请求中,我仍然可以取回数据,所以服务不能基于Referer/Origin进行过滤。
所以基本上我想知道如果我可以发出两个看似相同的请求但通过 jQuery 却没有收到响应,那到底发生了什么。是否有一些我看不到的“隐藏”标头或参数,服务器可以使用它们来确定请求是通过 JavaScript 发送的?
我的代码就像$.get("http://example.com/json.php?q=sometext", function(response) { alert(response); });一样简单
谢谢。
【问题讨论】:
-
从
get()调用中的链接中删除域