2017-03-07 79 views
2

我的客戶端是這樣的:

$http(
     { 
      method: 'GET', 
      url: myConfig.serverUrl + '/getUserId', 
      data: '', 
      headers: { 'Authorization' : '21321313'}, 
     }); 

服務器側節點JS和表達:

app.use(function (req, res, next) { 
res.setHeader('Access-Control-Allow-Origin', '*'); 
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); 
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization'); 
next(); 

});

但要求沒有設置授權值
OPTIONS /getUserId HTTP/1.1. Host: xxxxx. Connection: keep-alive. Pragma: no-cache. Cache-Control: no-cache. Access-Control-Request-Method: GET. Origin: http://localhost:9000. User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36. Access-Control-Request-Headers: authorization. Accept: */*. Referer: http://localhost:9000/. Accept-Encoding: gzip, deflate, sdch. Accept-Language: en-US,en;q=0.8,he;q=0.6.
我嘗試了很多方法,但他們沒有工作。 當我試圖與郵遞員,我得到的價值,所以我認爲我的問題在我的角度,但我不知道是什麼問題。

回答

1

這個問題在服務器端, 在「選項」 API調用不需要檢查授權

0

你需要指定authorization type'Authorization', 'Basic ZWx1c3VhcmlvOnlsYWNsYXZl'

+0

是啊試試這也..仍然沒有工作。 –

0

在基本身份驗證,BASE64來的用戶名進行解碼和密碼。因此,注入並使用Base64來編碼用戶名和密碼

var token = Base64.encode(username + ':' + password); 
$http.defaults.headers.common['Authorization'] = 'Basic ' + token; 
+0

仍然無法正常工作 –