2017-08-14 145 views
0

我有一個後端執行BASIC身份驗證。我傳遞的捲曲編碼的用戶名/密碼如下授權標題 - Javascript Vuejs

curl -D- -X GET -H "Authorization: Basic cmFtcmFtOnBhc3N3b3Jk" -H "Content-Type: application/json" "http://localhost:9000/users/login" 

,它工作正常

而在使用VUE資源vue.js我試圖用做同樣的

var options = { 
     url: 'http://localhost:9000/users/login', 
     method: 'GET', 
     headers: 
     { 
      'Authorization': 'Basic cmFtcmFtOnBhc3N3b3Jk' 
     } 
    } 
    context.$http(options).then(res => { 
     if (res.ok) { 
     cb({ authenticated: true }) 
     } else { 
     cb({ authenticated: false }) 
     } 
    }) 

但它沒有得到認證。從devtools得到的請求信息如下

Accept:*/* 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-GB,en;q=0.8,fr;q=0.6,en-US;q=0.4 
Access-Control-Request-Headers:authorization 
Access-Control-Request-Method:GET 
Connection:keep-alive 
DNT:1 
Host:localhost:9000 
Origin:http://evil.com/ 
Referer:http://localhost:8080/Login 

我沒有看到授權信息被傳遞給服務器。難道我做錯了什麼 ?注意:服務器和客戶端都在本地主機上。

感謝

回答

0

vue-resourceretired,所以我不認爲你應該使用它了。相反,你如何使用fetch而不是建議,看看它是否工作:

fetch('http://localhost:9000/users/login', { 
    method: 'POST', 
    headers: new Headers({ 
     'Authorization: Basic cmFtcmFtOnBhc3N3b3Jk', 
     'Content-Type': 'application/json' 
    }), 
    body: JSON.stringify(req.body.payload) 
})