2

解決できない問題に遭遇しました。

HTTPSを呼び出すためにCorsが有効になっているApacheで動作するjs(jquery)POST SOAP(PHP経由)リクエストコードがいくつかあり、正常に動作しました。

IIS7 に移行し、応答ヘッダーを設定しました。

Access-Control-Allow-Origin = *
Access-Control-Allow-Methods = POST`

そして今、奇妙なことに送信時に

Content-Type: text/xml;

拒否されますが、デフォルトを送信する場合

application/x-www-form-urlencoded

不思議なことに、私は応答を受け取りました(もちろん、Soapサーバーからのエラー応答ですが、それでも、Corsがこれに対して機能することを意味します)。

問題は、iis ヘッダーに設定するものが他にあるかどうかです。私は一日中答えを見つけようとしましたが、運がありませんでした. 私の推測では、それについてですAccess-Control-Allow-Headersが、それでも有効な例が見つかりません。

4

1 に答える 1

2

次のヘッダーを設定する必要があります。

Access-Control-Allow-Headers: Content-Type

そのリストに他のヘッダーを配置する必要がある場合もあります。どのヘッダーを追加するかを判断する最善の方法は、リクエストの Access-Control-Request-Headers ヘッダーを調べて、要求されている値を確認し、それらの値を上記の応答でエコーすることです。

このヘッダーに Content-Type を含める必要があるのは、非標準の値を要求しているためです (「application/x-www-form-urlencoded」は標準値です)。

于 2012-04-06T18:06:37.903 に答える