6

我正在尝试访问一些在 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){
        ...
      }
});

我做错了什么?有什么我在这里忽略的吗?谢谢。

4

1 回答 1

1

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

访问控制允许来源:yourApiDomain

访问控制允许方法:*

  • 如果使用自定义标题:

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

    访问控制允许标题:X-My-Custom-Header、X-Another-Custom-Header

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

    访问控制允许凭据:true

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

于 2013-05-02T13:57:00.993 回答