我的 AJAX 有問題。使用 Insomnia,我能夠使用 API 令牌獲得 200 的成功回應。
但是,當我在 HTML 中實作它時,我收到 401 access denied回應。
$.ajax({
url: "https://ecoexchange.dscloud.me:8080/api/get",
method: "GET",
apikey: sessionStorage.getItem("apikey"),
dataType: 'json',
success: function(result) {
$('#infoTable tr').empty();
var header = $('#infoTable thead');
var body = $('#infoTable tbody');
var hTr;
$('#infoTable thead').append(hTr = $('<tr>'));
// Headers
for (var h = 0; h < result.headers.length; h ) {
hTr.append($('<th>', {
text: result.headers[h]
}))
}
// Body
for (var d in result.data) {
var data = result.data[d];
$('#infoTable tbody').append($('<tr>')
.append($('<td>', {
text: data.RecyclableID
}))
.append($('<td>', {
text: data.Name
}))
.append($('<td>', {
text: data.RecyclableType
}))
)
}
}
})
我不確定如何輸入令牌或用戶名或密碼。
如何改進代碼以免出現錯誤?
uj5u.com熱心網友回復:
你用的這個apikey引數是什么?這不在檔案中。
apikey: sessionStorage.getItem("apikey"),
您的意思是將其作為標題傳遞嗎?例如:
headers: {"apikey": sessionStorage.getItem("apikey")},
您正在使用的服務的檔案應指定如何包含 API 密鑰。大概你有這些資訊,因為:
使用 Insomnia,我能夠獲得成功的回應
所以你需要在你的 AJAX 請求中包含它所屬的值。最有可能作為標頭值或查詢字串值。但是 jQuery.ajax()函式不會知道如何傳遞值,您必須指定。
uj5u.com熱心網友回復:
我認為你的問題是通過查詢可以在這里解決
正如大衛的回答所說,您必須知道在服務器端、標題或查詢(引數)中哪里需要您的 apikey。
如果基于檔案的查詢需要您的 apikey,您可以使用:
$.get('/api/get' , {'apikey' : 'YOUR-KEY'}).done((res) => {
console.log(res)
})
或者,如果標題中需要您的 apikey:
$.ajax({
url: '/api/get',
type: 'GET',
headers: {'apikey' : 'YOUR-KEY'},
success : (res) =>{
console.log(res);
}
})
jQuery.ajax()檔案可以在這里找到
和jQuery.get()檔案在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377903.html
標籤:javascript 阿贾克斯
上一篇:如何使用GoogleAnalytics跟蹤AJAX性能?
下一篇:rspec示例后解凍時間
