2013-03-17 51 views
1

Ajax GET Angular調用失敗。使用機器IP訪問本地主機會導致Ajax調用失敗

它提出了以下錯誤:

XMLHttpRequest cannot load http://localhost:3000/learning_record_service/get_document?document_id=288. Origin http://127.0.0.1:3000 is not allowed by Access-Control-Allow-Origin. 

這裏是請求的詳細信息:

Request URL:http://localhost:3000/learning_record_service/get_document?document_id=288 
Request Method:OPTIONS 
Status Code:200 OK 
Request Headersview source 
Accept:*/* 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Access-Control-Request-Headers:accept, origin, x-requested-with 
Access-Control-Request-Method:GET 
Connection:keep-alive 
Host:localhost:3000 
Origin:http://127.0.0.1:3000 
Referer:http://127.0.0.1:3000/documents/open/288?sc=c961d72844bbc5439923e097860057d0&angular=1 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.22 (

雖然這裏是代碼:

$http.get('/learning_record_service/get_document?document_id=' + document_id).success(function(data){ 

//success code 

}); 
+0

您正在使用哪種瀏覽器?我記得用Chrome我有這個問題,如果我沒有錯,它與Firefox的工作。無論如何,我使用一些像Appfog這樣的管理域來執行這種請求。 – steo 2013-03-17 19:21:02

+0

你必須要求一個相同的主機+端口(也是方案,例如http或https)。 – Gael 2013-03-17 19:21:29

+0

爲什麼它在相同的請求中顯示127.0.0.1和localhost。是他們中的任何一個硬編碼? – Anoop 2013-03-17 19:24:59

回答

0

看你的要求,我們可以請參閱以下內容:

Request URL:http://localhost:3000/learning_record_service/get_document?document_id=288 
... 
Host:localhost:3000 
Origin:http://127.0.0.1:3000 
Referer:http://127.0.0.1:3000/documents/open/288?sc=c961d72844bbc5439923e097860057d0&angular=1 

正如你所看到的東西正在導致你的代碼混合localhost:3000127.0.0.1:3000。這被解釋爲默認情況下大多數瀏覽器不允許的「跨域」或「跨域」請求。

+0

是的,我已經看到了這個,但奇怪的是,什麼是混合它。梅納斯我在角度調用中使用相關的網址,並仍落入本地主機:3000。 :( – Gull 2013-03-17 20:57:26

相關問題