【问题标题】:Convert curl to ajax将 curl 转换为 ajax
【发布时间】: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


【解决方案1】:

我不知道确切的原因,但这不适用于纯 JavaScript 代码(意思是运行 script.js 之类的东西),但它适用于 chrome 扩展,当您放置服务器时,您试图连接权限。

【讨论】:

    猜你喜欢
    • 2016-01-08
    • 1970-01-01
    • 2015-10-06
    • 2018-02-15
    • 2016-10-10
    • 2021-02-14
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多