2017-02-20 82 views
2

我試圖用angular2 CLI訪問此網址,但得到的訪問控制的誤差Angular2設置代理失敗

http://safety.trucksafetyinspection.co.ke/rest/v1/new/profile?access-token=my-token 

我添加了一個proxy.config.json文件

{ 
    "/rest/v1/*":{ 
     "target":"http://safety.trucksafetyinspection.co.ke", 
     "secure":false, 
     "logLevel":"debug" 
    } 
} 

不過還是我得到一個錯誤的

No Access-Control-Allow-Origin' header is present on the requested resource. Origin 

在package.config.json

"scripts": { 
    "ng": "ng", 
    "start": "ng serve --proxy-config proxy.config.json", 
    }, 

所以在ng buildnpm start甚至ng serve仍然出現此錯誤。什麼可能是錯的?

UPDATE:後端是yii2和香港專業教育學院建立CORS過濾器作爲

public function behaviors() 
{ 
    return [ 
    'corsFilter' => [ 
     'class' => \yii\filters\Cors::className(), 
     'cors' => [ 
      // restrict access to 
      'Origin' => ['*'], 
      'Access-Control-Request-Method' => ['POST', 'PUT','OPTIONS','GET'], 
      // Allow only POST and PUT methods 
      'Access-Control-Request-Headers' => ['X-Wsse'], 
      // Allow only headers 'X-Wsse' 
      'Access-Control-Allow-Credentials' => true, 
      // Allow OPTIONS caching 
      'Access-Control-Max-Age' => 3600, 
      // Allow the X-Pagination-Current-Page header to be exposed to the browser. 
      'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'], 
     ], 

    ], 
]; 
} 
+0

如果您在公司代理之後工作,如果您嘗試將呼叫代理到本地網絡之外的任何URL,常規後端代理配置將不起作用。如果是這種情況,請嘗試使用公司代理https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/using-corporate-proxy.md而不是 – Set

+0

您是否看到'Proxy created :...在調用'npm start'後的日誌中記錄消息? – Set

+0

在構建期間如何構建和部署到共享主機時,這也會失敗 –

回答

0

這聽起來不像一個代理的錯誤給我。這聽起來像是一個交叉原點(CORS)問題。當src域與某些瀏覽器請求的dest域不同時,會發生這種情況。

例如SRC域名woogle.com但DEST域是noogle.com

你有兩個選擇,要麼讓你的Web服務器重寫請求

OR

添加訪問控制頭到後臺服務器。這些頭文件(如果有的話)定義了哪些其他域可以向服務器發出請求。

例如..

Access-Control-Allow-Origin: http://foo.example 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type 
Access-Control-Max-Age: 86400 

如何將這些報頭在服務器上設置將取決於其是否節點快遞,阿帕奇,NGINX等

看到https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS更多細節