0
我正在嘗試製作基於AzureAD的應用程序。我有一個功能性的後端,我也有一個功能性的客戶端服務,可以通過在頭中傳遞訪問令牌來連接到應用程序。ADAL.js使用授權令牌的SPA請求
然而,當我嘗試使用ADAL.js通過這個代碼授權:
$.ajax({
url: '/api/folder',
type: 'POST',
headers: { 'Authorization': 'Bearer ' + getAuthHeaders(), },
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', progressBar, false);
}
return myXhr;
},
success: completeHandler = function (data) {
alert('Success!');
modal.remove();
updateFileBrowsers(folderName);
},
error: errorHandler = function (jqXHR, textStatus, errorThrown) {
alert('Fail! :(');
},
data: formData,
cache: false,
contentType: false,
processData: false
}, 'json');
我只在來自服務器的響應得到了401。該控制器非常簡單,它在API訪問點上具有整個控制器的[授權]符號。
我已經檢查過,令牌不是空的,它不是。我已將該應用程序添加到Azure應用程序。
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
我能看到的唯一區別是,一個使用ADAL:使用所使用的客戶端後臺的應用的控制器誰登錄,然後設置標題的時候做的完全一樣的方式生成連接成功.js和一個使用.NET本機類來設置請求標頭。
說明:httpClient的作用像一個魅力。 SPA解決方案拒絕工作。