1

私はjsonpやcorsなどに本当にイライラしています。

jsonp は、戻ってくるステータス コードだけで、本体がない場合はエラーだと考えて jquery に結果を返します。また、戻ってくるエラー コードにはステータス 200 のエラーが必要であると考えているため、どれがどれであるかを判断することさえできません。

次に、cors を試してみると、WebAPI が何らかのオプション リクエストで DelegatingHandler をインターセプトし、結果が返されたため、すべての主要なブラウザがオプション リクエストを通過することはありません。

それで、ヘッダーを強制するためにweb.configに大量のものを入れました:

  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="https://beta.mobilemone.com" />
    <add name="Access-Control-Allow-Headers" value="content-type, accept, authorization, origin, referer, user-agent" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
    <add name="Access-Control-Allow-Credentials" value="true"/>
    <add name="Access-Control-Max-Age" value="1728000"/>
  </customHeaders>

それはさらに進みますが、最終的に呼び出されるjquery ajaxリクエストで「キャンセルされた」結果を取得します。

cors を Web API で適切に動作させるにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

設定を削除してみてください<add name="Access-Control-Allow-Credentials" value="true"/>。クライアントが も設定していない場合、これは問題を引き起こします.withCredentials = true

また、Access-Control-Allow-Origin ヘッダーを次のように変更してみてください。

<add name="Access-Control-Allow-Origin" value="*" />

これら 2 つのヒントがうまくいかない場合は、リクエスト/レスポンス ヘッダーのトレースと一緒に JavaScript コードを含めていただけますか?

于 2012-12-13T02:54:25.720 に答える