2014-05-02 92 views
1

我創建了一個接口,使用express和mongoose從mongodb中獲取數據並將其發送到客戶端。當我在linux終端和html上使用wget獲取數據時,它工作正常瀏覽器。但是當我使用angular js $ http方法請求數據時,它顯示出以下錯誤。使用快速接口從角度指令中獲取數據

No 'Access-Control-Allow-Origin' header is present on the requested resource.   Origin 'http://127.0.0.1:9000' is therefore not allowed access. 

任何人都可以建議我錯誤的如何擺脫這個問題。提前Thanx。

回答

2

您正嘗試從不同的主機/域/ IP執行AJAX($ http.get)調用。我的猜測是,您正在運行您的Angular應用程序http://localhosthttp://127.0.0.1,並且您正在運行節點http://127.0.0.1:9000,這是一個不同的來源。有兩種解決方案:

  1. 在同一主機名上運行它們,例如在本地主機上或同時在兩個127.0.0.1上。
  2. 從Node添加Access-Control-Allow-Origin HTTP頭,允許您的Angular主機(源)通過AJAX訪問後端。

這一切的原因是一種安全措施,以便網站不能在沒有明確許可的情況下在互聯網上獲取任何其他網站。否則惡意網站可能會對您的PayPal或銀行帳戶進行AJAX呼叫。