2013-08-19 89 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導致問題並且沒有更多信息是正確的,但很難說出你的具體問題是什麼。