gpt4 book ai didi

javascript - “网络错误: 405 Method Not Allowed error in Ajax Call

转载 作者:行者123 更新时间:2023-11-27 23:51:38 24 4
gpt4 key购买 nike

我创建了一个 REST 服务,并在 Chrome REST 控制台 上对其进行了测试。它工作正常,我得到了响应,但在通过 jquery Ajax 使用相同的响应时,我收到 “NetworkError: 405 Method Not Allowed error in Ajax CallCross-Origin Request Blocked: The同源策略不允许读取 http://localhost:64132/Auth 处的远程资源。(原因:CORS 请求失败)。 错误。这是我的 Ajax 代码..

var UserDetails = { "UserName": "Bond", "Password": "password" };

$.ajax({
type: 'POST',
url: 'http://localhost:64132/Auth',
crossDomain: true,
data: UserDetails,
contentType: "application/json; charset=utf-8",
success: function (data) {

alert(data.UserName);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("some error");
}
});

请帮助我更正此问题并成功调用服务。谢谢..

更新

当我尝试从 Chrome 调用服务时,我在控制台中收到以下错误..

Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
Test.html:1 XMLHttpRequest cannot load http://localhost:64132/Auth. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 405.

最佳答案

现代浏览器对于从不同“域”检索内容有非常严格的规则。从本地文件系统(您的 HTML/脚本)检索内容与向 localhost(您的 ajax 调用)发出网络请求不同,因此 Chrome 将其视为跨域请求。

为了成功跨域请求,您还需要从 http://localhost:64132/ URL 提供 HTML 内容/脚本(因此它们位于相同的域),或者您需要设置 REST 服务来实现 CORS 舞蹈,以允许您的 file: URL 访问它。

如果不了解 REST 服务如何实现的详细信息,就不可能为任一选项提供具体说明。您选择哪个将取决于您打算如何在现实生活中部署页面和服务(是否相同域)以及实现的难易程度。如果您的 REST 服务部署在某种容器中,它可能会提供用于实现 CORS 和/或提供初始页面的选项。

同一问题的随机示例(尽管此处的确切解决方案不太可能适用于您的具体情况):Access-Control-Allow-Origin header when Origin 'null' when trying to post data to a LOCAL application

关于javascript - “网络错误: 405 Method Not Allowed error in Ajax Call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32651745/

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