gpt4 book ai didi

javascript - 无法从 angularjs 应用程序调用 Web 服务

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

无法从我的应用程序调用邮政网络服务。以下是代码。

var postLogin = "http://0.0.0.0:000/ddd/v1/login";
var loginvalue = {"email":"some@mail.com","password":"cbsjc6dw3bgjyfdgdKHGGDF="};
var config = {
headers: {
'Content-Type': 'application/json'
}
}
$http.post(postLogin ,loginvalue,config ).success( function(response) {
alert("response "+ response)
$scope.defer.resolve(response);
}).error(function(error){
alert("dddddd" + JSON.stringify(error));
})

如果我编写此代码,那么它会返回 400 错误,但如果我使用谷歌的 postman 应用程序,那么我会得到没有任何错误的响应。所以我很困惑,无论我写的代码是对还是错。因此我需要解决这个问题。

enter image description here

请仔细阅读上面的图片。

最佳答案

当客户端和服务器位于不同域时,通常会发生这种情况。客户端完成的 POST 请求首先通过 OPTIONS 飞行前检查进行验证,以查看是否可以进行 POST。有时,服务器被配置为不允许 OPTIONS 请求方法。在这种情况下,这将是飞行前选项检查的结果。

这里有更多信息 - Why is an OPTIONS request sent and can I disable it?

用于理解概念并帮助我们从服务器端应用程序配置响应 header 的其他资源如下:

https://medium.com/@praveen.beatle/avoiding-pre-flight-options-calls-on-cors-requests-baba9692c21a

https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

归根结底,如果服务器未配置为处理跨站点请求,则客户端无法执行任何操作。

此外,在某些情况下,服务器确实允许跨站点请求、处理并将响应发送回客户端,而无需 Access-Control-Allow-Origin header 或带有 Access-Control-Allow-Origin header ,但与请求来源或通配符“*”不同。在这种情况下,即使调用处于 HTTP 200 OK 状态,浏览器也会停止处理响应。

下面是我最近在与外部应用程序集成时遇到的一个这样的示例。 enter image description here

关于javascript - 无法从 angularjs 应用程序调用 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49607238/

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