2013-08-19 231 views
0

我有这个Web应用程序,我使用Ajax从域A向域B上的其他服务发出请求。 域B已设置为在CORS Access-Control *标头中响应为了获得跨域发布工作Ajax Post请求未授权

头从域B响应:

Access-Control-Allow-Credentials: true 
Access-Control-Allow-Headers:  content-type 
Access-Control-Allow-Methods:  POST GET OPTIONS 
Access-Control-Allow-Origin:  https://sub.domain-a.com 
Access-Control-Max-Age:    180 

Ajax代码

$.ajax({ 
    url: 'https://sub.domain-b.com', 
    type: 'POST', 
    contentType: 'application/json', 
    headers: { 
     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' 
    }, 
    data: json, 
    dataType: 'json', 
    xhrFields: { 
     withCredentials: true 
    }, 
    success: function (data) { 

    }, 
    error: function (jqXHR, textStatus, errorThrown) { 

    } 
}); 

我登录在两个域和我的请求发送必要的cookie(withCredentials =真),但我仍然得到

两个域名使用SSL证书

,我开始怀疑,从响应故宫403,如果SSL的导致问题,因为这工作之前,我没有得到我的日志

有没有人有任何经验与类似的东西? 任何指针?

回答

0

这可能是类似这样的问题的东西: Pre-flight OPTIONS request failing over HTTPS

通常,当问题是与SSL和预检要求,虽然你不会得到一个403,你只得到OPTIONS请求中止。

该服务如何进行身份验证和授权?您使用自签名证书吗?这听起来像是你认为SSL导致问题并且没有更多信息是正确的,但很难说出你的具体问题是什么。