私は別のアプリケーション/ドメインからハンドラにファイルをアップロードするはずのasp.net Webサイトを持っています。私はjQuery Formプラグインを使用しています。同じドメイン(同じドメインにアップロードする)でサンプルを作成しようとすると、この設定は成功します。ファイルをsiteAからsiteBにアップロードしようとすると、(Networkタブで)ハンドラからの応答が返され、有効であることがFirebugに表示されますが、コードは決して 'success'ハンドラに入りません。放火犯コンソール:ChromeでjQueryフォームプラグイン - 別のドメインにファイルをアップロードする
[jquery.form] Server abort: Error: Permission denied to access property 'document' (Error) log:
[jquery.form] cannot access response document: Error: Permission denied to access property 'document'
[jquery.form] aborting upload... aborted
それは次のとおりです。今
Unsafe JavaScript attempt to access frame with URL http://domainB/handler.ashx from frame with URL domainA. Domains, protocols and ports must match.
、私はドメイン間のAjaxの呼び出しについてのいくつかのポリシーがあるという事実を認識していますが、jQueryのフォームプラグインは、単にしようと思われます禁止されているURLにアクセスする。 誰かに回避策がありますか?どんな解決策ですか:)
更新: 私はjquery.formをハッキングしてしまい、クロスサイト例外が発生しないようにしました。実際のアップロード結果は必要ありません。
ドメインBにページを追加し、domainAのiframeとして使用することをお勧めしますか? – IamDeveloper
私はむしろそのように行っていないだろう。あなただけのファイル、または他のフォームのものもアップロードする必要がありますか?ファイルのみの場合 - クロスドメインリクエストで動作する別のプラグインを使用します(アップロードはそれを行います)。そうでない場合は、同じドメインでプロキシを使用して、handler.ashxコードのコードの後ろにファイルを投稿してください。 –