我試圖使用$ jQuery.get()通過GET請求調用(私有)RESTful Web服務。但是當我這樣做時,我沒有收到響應數據(儘管我得到了200 OK響應代碼!)。當請求來自瀏覽器或PHP時,RESTful API會返回數據,但不會來自JavaScript。爲什麼?
當我做從PHP完全相同的調用(file_get_contents()函數),或者僅僅通過粘貼獲取URL到我的瀏覽器窗口,我收到(JSON)迴應就好了。
用Firebug,我可以看到絕對的請求頭之間沒有區別時,我提出的要求從jQuery的我送,當我將URL粘貼到我的瀏覽器。唯一的區別是,jQuery的補充「引薦」和「源」頭 - 但,我強行使用Firefox的ModifyHeaders擴展將這兩頭到我的瀏覽器直接的請求,我還是找回數據,因此該服務無法基於Referer/Origin進行過濾。
所以基本上我不知道這到底是怎麼回事,如果我可以讓兩個看似相同的請求,但是未收到任何迴應時,它的通過jQuery的。有沒有一些「隱藏的」標題或參數,我沒有看到哪個服務器可以用來確定請求是通過JavaScript發送的?
我的代碼很簡單,只要$.get("http://example.com/json.php?q=sometext", function(response) { alert(response); });
感謝。
從鏈接中刪除域的'得到()'調用 – 2011-05-01 20:41:39