次の手順に従いました。
- クロスドメイン呼び出しを許可するようにサーバーを取得します(すべてのヘッダーなどを使用)これは機能します
- いくつかのクロスドメイン呼び出しでサーバーをテストしますこれは機能します
- サーバーに証明書を強制するように取得します これは機能します
- ブラウザでサーバー上のファイルにアクセスし、適切な証明書を選択して、ファイルを確認します
- クロスドメイン呼び出しを証明書と組み合わせる<-- これは機能しません
問題
ブラウザから証明書要求を取得していますが、ブラウザを使用するときと同じ証明書を選択すると、呼び出しは行われますが、403 Forbidden が返されます。
コード
$.ajax({
type: "POST",
xhrFields: {withCredentials: true},
dataType: "xml",
contentType: "text/xml; charset=\"utf-8\"",
url: "https://www.myOtherServer.com/testfile.asp",
});
何か案は?
編集
とが正しく設定されている Access-Control-Allow-Credentials: true
。Access-Control-Allow-Origin
追加情報
コンテンツタイプと関係があると思い始めています。に変更すると"text/html"
エラー415
が発生しますが、SOAP サーバーであるため xml を送信する必要があります。
応答ヘッダー
Access-Control-Allow-Cred... true
Access-Control-Allow-Head... Content-Type, Origin, Man, Messagetype, Soapaction, X-Test-Header
Access-Control-Allow-Meth... GET,POST,HEAD,DELETE,PUT,OPTIONS
Access-Control-Allow-Orig... https://www.mywebsite.com
Access-Control-Max-Age 1800
Cache-Control private
Content-Length 5561
Content-Type text/html; charset=utf-8
Date Wed, 19 Dec 2012 15:06:46 GMT
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
リクエストヘッダー
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language nl,en-us;q=0.7,en;q=0.3
Access-Control-Request-He... content-type
Access-Control-Request-Me... POST
Cache-Control no-cache
Connection keep-alive
Host myhoast.com
Origin https://www.mywebsite.com
Pragma no-cache
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0