gpt4 book ai didi

javascript - 400 Bad Request 仅使用 AngularJs,适用于 jQuery

转载 作者:行者123 更新时间:2023-11-30 00:33:17 24 4
gpt4 key购买 nike

我在将 AngularJs 用于特定“PUT”Ajax 请求(RESTFul 服务)时遇到问题。

同一段代码适用于 jQuery 和纯 JavaScript。

$http({
method: "PUT",
url: "https://XXXXXXXXXXXXXX/api.php?rquest=updateUuid",
headers: {
"Content-type": "text/plain",
Authorization: "Basic " + btoa(email + ":" + password)
},
data: {
Email: email,
Uuid: login_response.uuid
}
}).success(function(response) {
console.log(response);
});


jQuery.ajax({
method: "PUT",
url: "https://XXXXXXXXXXXXXX/api.php?rquest=updateUuid",
headers: {
"Content-type": "text/plain",
Authorization: "Basic " + btoa(email + ":" + password)
},
data: {
Email: email,
Uuid: login_response.uuid
}
}).done(function(response){
console.log(response)
});

服务器正在响应 JSON 对象,但第一个代码 (AngularJs) 的工作方式似乎有点不同。在我没有设置 Content-Type header 之前,我遇到了 CORS 问题(使用 jQuery,但 AngularJs 将内容类型设置为“application/json "并导致错误)。

我将第一部分固定为文本/纯文本,但现在我收到了 400 Bad Request Error(仅限 AngularJs)。我还尝试使用拦截器删除 transformRequest,但没有成功。

我是不是用错了AngularJs?因为我在想,unlinke jQuery,它在后台做额外的“事情”,制作一些额外的 header 或没有正确传递数据。

通常,当我没有将任何数据传递给 RESTful 服务时,我会收到该错误。

我正在学习 AngularJs,所以我宁愿使用它而不是 jQuery。任何帮助将不胜感激。

非常感谢

最佳答案

我知道了,jQuery 会自动将数据对象序列化为 application/x-www-form-urlencoded,而 AngularJs 不会...

工作代码:

$http({
method: "PUT",
url: "https://XXXXXXXXXXXXXX/api.php?rquest=updateUuid",
headers: {
Accept: "*/*",
"Content-Type": "application/x-www-form-urlencoded",
Authorization: "Basic " + btoa(email + ":" + password)
},
data: jQuery.param({
Email: email,
Uuid: login_response.uuid
})
})

不管怎么说,这看起来不太好,但它至少在工作..有人知道让 AngularJs 以 x-www-form-urlencoded 形式发送序列化数据的更好方法吗?

关于javascript - 400 Bad Request 仅使用 AngularJs,适用于 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346221/

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