クロスサイト スクリプティング リクエストを許可するようにウェブサイトを設定する方法に関するMozilla の記事に従っています。IIS マネージャーを使用して、次の HTTP 応答ヘッダーを追加しました
Access-Control-Allow-Origin : *
Access-Control-Allow-Headers : Origin, SecurityPrivateKeyID
Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS
それにもかかわらず、ブラウザ (Firefox および Chrome) がカスタムヘッダー405 Method Not Allowed
を使用してプリフライト リクエストを送信すると、エラーが発生し続けます。SecurityPrivateKeyID
リクエスト
OPTIONS /Service/Json/User.svc/ HTTP/1.1
Host: serviceprovider.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://client.com
Access-Control-Request-Method: GET
Access-Control-Request-Headers: securityprivatekeyid
Connection: keep-alive
応答
HTTP/1.1 405 Method Not Allowed
Allow: GET
Content-Length: 1565
Content-Type: text/html; charset=UTF-8
Server: Microsoft-IIS/8.0
access-control-allow-origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Origin, SecurityPrivateKeyID
Date: Sat, 23 Mar 2013 08:35:03 GMT
に直接アクセスすると、サービスは正常に動作しhttp://serviceprovider.com/Service/Json/User.svc/
ます。
私が間違っていることについてのアイデアはありますか?
[私のマシンで client.com と serviceprovider.com を指すようにホスト ファイルを変更したことに注意してください]
[私の Web サービスは POST、PUT、および DELETE メソッドを使用できる必要があるため、JSONP を使用したソリューションは機能しません]