0

我正在尝试将我的一个进行 API 调用的 powershell 脚本翻译成用于 chrome 扩展的 javascript 或 jquery。我对 Jquery 不是很精通,所以在使用以下代码(不受支持的媒体类型)拨打电话时出现错误 415。我想我必须告诉它我正在使用“Content-Type”、“application/json”……但我不会在我的 powershell 脚本中这样做,直到我已经获得我的令牌之后的后续调用,所以我我有点困惑。为什么我会收到 415 错误,我该如何解决?

var token
var userName = "userID"; 
var passWord = "PaSSwOrD"; 
var tokenURL = "https://55.55.55.55/api/v1/token";  
var xhr = new XMLHttpRequest();

var data =
'&grant_type=password';
'&server_host=55.55.55.55' +
'&username=' + userName +
'&password=' + passWord;
var dataFinal = encodeURI(data);

xhr.open('POST', tokenURL, true);
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        //do something
    }
}
xhr.send(data);
alert(xhr.responseText);
4

1 回答 1

1

试试这个(如果我们谈论 jQuery):

var obj = null
$.ajax({
    url: "https://55.55.55.55/api/v1/token",
    method: 'POST',
    async: false,
    data: {
        grant_type: 'password',
        server_host: '55.55.55.55',
        username: 'userID',
        password: 'PaSSwOrD'
    },
    headers: {
        'Content-type': 'application/x-www-form-urlencoded',
        Accept:'application/json'
    },
    success: function(data){
    obj = data    // here the result
    }
})
console.log(obj) // here the result because of "async: false"

于 2021-12-07T18:51:55.173 回答