2016-01-04 106 views
0

我正在從角JS前端調用API,並且得到401 Unauthorized錯誤。這是我嘗試過的選項。

選項1:

$http({ 
    method: "GET", 
    xhrFields: { 
     withCredentials: true 
    }, 
    headers: { 
     Authorization: 'Basic ' + btoa('user:password') 
    }, 
    url: 'http://localhost:11000/api/ping' 
}).then(function(r) { 
    return Session.userId = r.headers('user'); 
}) 

能否請你幫我在傳遞憑證到後端API?

+0

您是否嘗試過調試代碼通過檢查瀏覽器的開發人員工具中的網絡選項卡來查看發送了哪些標頭? – mostruash

+0

您使用ASP .Net表單身份驗證嗎? – Avi

+0

響應頭 訪問控制允許信任:真 訪問控制允許頭:接受授權 訪問控制允許方法GET 訪問控制允許起源:http:// localhost: 8000 允許:GET,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,PATCH Content-Length:0 Date:Mon,04 Jan 2016 21:19:46 GMT 服務器:Apache-Coyote/1.1 Strict-運輸安全:最大年齡= 31536000; includeSubDomains 各不相同:產地 WWW身份驗證:基本境界= 「春」 –

回答

0

,如果你做的$ HTTP請求,你必須使用,因爲asynchronus

function httpReq(){ 
    return $http({ // this will return a promise 
     method: 'GET', 
     url: '/someUrl' 
    }).then(function successCallback(response) { 
     // this callback will be called asynchronously 
     // when the response is available 
     console.log('success'); 
     return response; 
    }, function errorCallback(response) { 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
     console.log('error'); 
     return response; 
    }); 
} 

以及如何使用該函數返回的承諾的承諾

httpReq().then(function (res) { 
    console.log(res); 
}); 
+0

感謝您的回覆Aliainlb。只是好奇,爲什麼我在API層上出現401錯誤? –

+0

我不知道爲什麼抱歉。嘗試谷歌搜索與「401角$ http」 http://stackoverflow.com/questions/21230417/capture-http-401-with-angular-js-interceptor – AlainIb

+0

我試過這個選項,沒有運氣。我仍然有401錯誤。 –