jquery ajax&先发制人的基本认证

时间:2013-04-23 17:39:43

标签: javascript jquery basic-authentication preemptive

我正在尝试访问在Apache preemtive basic authentication下运行的一些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){
        ...
      }
});

我做错了什么?有什么我在这里无视的吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

Access-Control-Allow-Origin:yourApiDomain

访问控制 - 允许 - 方法:*

  • 如果使用自定义标题:

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

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

  • 如果使用HTTP Cookie和HTTP身份验证信息:

    Access-Control-Allow-Credentials:true

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