4

私はここで大きな問題を抱えています。Kendo UI をレイアウト ベースとして使用し、アップロードにも使用する .Net MVC 4 アプリケーションを入手しました。アップロードは、IE9 (9.0) を除くすべてのブラウザーで正常に動作します。ただし、これらの情報が重要かどうかはわかりませWindows Server 2008 RC2 x64ん。

SCRIPT5: Access Denied剣道が非同期呼び出しを送信しようとすると、エラーが発生します。kendo UI Foruns の Telerik's Member のこの投稿によると、Kendo は IE10 のiframe以前のバージョンで非同期アップロードを可能にするために を作成します。

APIのwebconfigにヘッダーを追加してみました:

<customHeaders>
    <add name="Access-Control-Allow-Credentials" value="true" />
    <add name="X-Frame-Options" value="ALLOW-FROM *"/>
</customHeaders>

の他のヘッダーは、API でこのようCORSに暗黙的に設定されます。CORS Handler Class

そのため、IE 要求の応答ヘッダーでそのヘッダーを確認できるため、IE はそれを取得します。ALLOW-FROM特に IE では、値が受け入れられるかどうかのサポートもわかりません*。しかしSAMEORIGIN、そのヘッダーに値を使用しようとしましたが、機能しませんでした。理由があります。WebApi がフロントエンドと同じアドレスにありません。それらは異なるサーバーとアドレスにあります。アップロードは、次の URL の API に直接送信されます。

http://dev.******.com/webserviceapi/api/UserProfile/Upload

フロントエンドは次の場所にあります。

http://dev.******.com/portal/

URL の抑制されたコンテンツは、両方のアドレスで同じです。

したがって、これを達成する方法がわかりません。このエラーは、私がウェブで見つけたものには当てはまりません。どんな助けでも大歓迎です!! 前もって感謝します。

4

1 に答える 1

3

開いた状態でもいいと思いますが、

これを使って

if (xhr.readyState == 1 /* OPENED */)

これはサーバー側で開かれ、サーバー接続が開かれます。これを参照してください

msdn ブログのこのクラスを使用したことがある場合

public class ValuesController : ApiController

クラスが公開されていない場合、CORSの前にエラーが発生する可能性があります..

ブログの 2 番目のコメントを見ましたか...

jQuery.support.cors = true;これを変更して、サポートされていないクロス ドメイン呼び出しを明示的にサポートする必要があります。次のコメントは次のように述べています...

that flag tells jQuery to use an alternative object for making cross-domain calls if the browser doesn't natively support it on its XmlHttpRequest implementation. For example, in IE8 that will cause jQuery to switch from XmlHttpRequest to the **XDomainRequest** object (in IE10 they "fixed" it in a way that XmlHttpRequest can be used for all requests). Regardless of the object on the client, the server still needs to "play the game" and return the appropriate headers so that the browser will allow such requests to be made.

はい、Teleric チーム メンバーからの投稿は論理的に完璧ですが、各 IE にはイベントとシステムを処理する独自の方法があります (痛々しいことに、これはその 1 つです..バグ) IE9 のバグのリストはまだ見つかりませんが、1 つだけありますIE8 のバグが関連するかどうかを参照するだけであると記載されているリンク。対処する必要があることを知っているので、これは便利です.. :)

正常に動作する場合は、 readyState == 2 を試してください..

あなたが見逃しているにちがいない何か小さなものがあるに違いないと思います..

msdn ブログで同じ著者による 2 番目の記事を参照

それがquirkmodeに役立つ場合はこれを参照してください

私は mvc の通常のユーザーではないため、この状況を他の側面から適切に判断することはできません..

私は他の理由を探しています。関連するものが見つかったら投稿します..

これが役立つことを願っています...

于 2013-06-17T10:32:21.077 に答える