jquery ajax & preemptive basic auth



我正在尝试访问一些在Apache先发制人的基本身份验证下运行的RESTful服务。我使用jquery Ajax,并发送用户和密码与'身份验证'头。但是,我的请求每次运行时都会抛出一个空错误。

这里是完整的$。ajax调用:

$.ajax({
      cache:false,
      url: urladdress,
      type:'GET',
      async:false,
      headers: { "cache-control": "no-cache" },
      dataType: "html", //or xml or json
      contentType: "html",
       beforeSend : function(req) 
       {
          req.setRequestHeader('Authorization', "Basic " +  base64string); //user:password);
       },
      success: function(data){
         successcallback(data);
      },
      error: function(xhRequest, ErrorText, thrownError){
           alert("ERROR: "+ JSON.stringify(xhRequest));
      },
      complete: function(result){
        ...
      }
});

我做错了什么?我是不是忽略了什么?谢谢。

解决方案是在服务器端,您必须包含一些自定义头响应跨域工作。实验发送以下报头作为响应:

Access-Control-Allow-Origin: yourApiDomain

Access-Control-Allow-Methods: *

  • 如果使用自定义头:

    Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header

  • Access-Control-Allow-Headers: X-My-Custom-Header, x - other- custom - header
  • 如果使用HTTP cookie和HTTP身份验证信息:

    Access-Control-Allow-Credentials:真正的

有关更多信息,请参阅MDN中关于CORS的文档:

相关内容

  • 没有找到相关文章

最新更新