XMLHttpRequest 无法加载 [url] 预检响应具有无效的 HTTP 状态代码 405
Posted
技术标签:
【中文标题】XMLHttpRequest 无法加载 [url] 预检响应具有无效的 HTTP 状态代码 405【英文标题】:XMLHttpRequest cannot load [url] Response for preflight has invalid HTTP status code 405 【发布时间】:2016-03-27 05:24:29 【问题描述】:这是我的 ajax 代码:
var param = "<ClientOrder xmlns='http://www.eysnap.com/mPlayer'>";
param += "<ClientId>CRF-1</ClientId>";
param += "<UserKey>598zxc8ddl45a3cvScuk</UserKey>" ;
param += "<PassKey>p1re254l3jd83os00cpk</PassKey>";
param += "<OrderId>123132323435</OrderId>";
param += "</ClientOrder>";
$.ajax(
url: URL,
data: param,
type: 'POST',
contentType: "text/xml",
dataType: "text",
success: function(result)
alert('success');
$("#div1").html(result);
,
error: function (xhr)
alert('error');
$("#div1").html(xhr.responseText);
);
我正在调用的服务很安静。疯狂的是,当我调用 GET 服务时,它会正确返回数据,但使用 POST 服务时会出现此错误:
XMLHttpRequest cannot load [url]. Response for preflight has invalid HTTP status code 405
任何帮助将不胜感激。
【问题讨论】:
服务提供者决定方法,而不是调用者。如果提供为get
,则您必须遵守。它可能不符合 REST,但就是这样 :-)
HTTP Error 405 Method not allowed
这意味着他们不允许 POST 请求。
实际上不,那是另一个允许 GET 的服务。该服务是专门为 POST 提供的。我需要发送一个 POST 请求。
@YvoCilon:这不可能。我已经在 C# 代码中使用 POST 调用此服务。现在,当我尝试使用 JQuery 执行此操作时,它不起作用!
CORS 问题 ... 如果站点不允许 CORS,则站点不允许 CORS ... 服务器 -> 服务器将工作,浏览器 -> 服务器将要求在服务器上启用 CORS
【参考方案1】:
原来是命名空间问题。
<ClientOrder xmlns='http://www.eysnap.com/mPlayer'>
我将命名空间更改为更正。
【讨论】:
以上是关于XMLHttpRequest 无法加载 [url] 预检响应具有无效的 HTTP 状态代码 405的主要内容,如果未能解决你的问题,请参考以下文章
XMLHttpRequest 无法加载 [url] 预检响应具有无效的 HTTP 状态代码 405
XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许的来源
XMLHttpRequest 无法加载 url Origin null is not allowed by Access-Control-Allow-Origin
无法通过 xmlhttprequest 加载本地 xml 文件
XMLHttpRequest 无法加载 <instagram OEMBED URL>。请求的资源上不存在“Access-Control-Allow-Origin”标头