gpt4 book ai didi

jquery - 将curl命令转换为jQuery $.ajax()

转载 作者:行者123 更新时间:2023-12-03 21:57:10 25 4
gpt4 key购买 nike

我正在尝试使用jquery ajax进行api调用,我有curl为api工作,但我的ajax抛出HTTP 500

我有一个curl命令,看起来像这样:

curl -u "username:password" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"foo":"bar"}' http://www.example.com/api

我尝试过像这样的ajax,但它不起作用:

$.ajax({
url: "http://www.example.com/api",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
},
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: {foo:"bar"},
success: function (data) {
alert(JSON.stringify(data));
},
error: function(){
alert("Cannot get data");
}
});

我错过了什么?

最佳答案

默认情况下,$.ajax()会将data转换为查询字符串,如果还不是字符串,因为这里的data是一个对象,所以更改 data 为字符串,然后设置processData: false,这样就不会转换为查询字符串。

$.ajax({
url: "http://www.example.com/api",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
},
type: 'POST',
dataType: 'json',
contentType: 'application/json',
processData: false,
data: '{"foo":"bar"}',
success: function (data) {
alert(JSON.stringify(data));
},
error: function(){
alert("Cannot get data");
}
});

关于jquery - 将curl命令转换为jQuery $.ajax(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com