【发布时间】:2016-03-08 18:47:03
【问题描述】:
我需要将此 curl 请求转换为 AJAX 格式 curl -X GET --header 'Accept: application/xml' --header 'Authorization: Basic eGZlZG9yMDNAc3R1ZC5maXQudnV0YnIuY3o6YXVkZWxpdmVy' 'http://example.com/user'
我做了
$.ajax({
type: "GET",
url: "http://example.com/user",
dataType: "xml",
beforeSend: function (xhr) {
xhr.setRequestHeader("Accept", "application/xml");
xhr.setRequestHeader("Authorization", "Basic eGZlZG9yMDNAc3R1ZC5maXQudnV0YnIuY3o6YXVkZWxpdmVy");
},
success: function(data){
console.log(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
})
此请求返回“XMLHttpRequest 无法加载 http://example.com/user。预检响应具有无效的 HTTP 状态代码 404。”。 有人可以给我建议吗?
【问题讨论】:
-
这听起来可能是
Cross-Origin Resource Sharing (CORS)问题。 html5rocks.com/en/tutorials/cors -
我认为这不是 CORS,因为它是 404。确保在尝试登录之前可以通过 xhr 访问该 URL。此外,请确保 Authorization 标头的格式正确在 CURL 请求中
-
它在没有授权的情况下“工作”,它返回带有 401 的 XML 对象,授权它只抛出这个错误
-
@JakubFedor 添加accept header,并仔细检查你的authorization header,乍一看可能不正确
-
@user2879041 所以我添加了所有内容,但我仍然遇到同样的错误该死
标签: javascript php jquery ajax curl