を特殊文字を使用した場合、デコード/不気味エン取得します:サーバー応答は、私がのExt JSを使用していますが、私は次のような問題に遭遇していますフロントエンドとAJAX libにとして
私は、バックエンドにアップロードされなければならないファイルを、アップロードしていますバックエンドはリポジトリ内の対応するファイルパス(いくつかのメタデータを含む)で応答します。答えは、HTML構造内のJSONです。応答内の次のパスで
バックエンドの答えを(内線JSファイルのアップロードが非表示のiframeを作成し、それ以外のiFrameのドメインがブラウザから異なるのでこれが行われる必要があります):
/documents/test/uploadTesthtml_ü_&/uploadTesthtml_ü_&.jpg
ネットワークパネルでパスは正しいです。成功ハンドラがで蹴るようしかし、すぐに、応答は、このパスが含まれています
/documents/test/uploadTesthtml_ü_&/html_ü_&.jpg
私はあなたがそれの人生を見ていないとき、これは、理解することはかなり混乱していることを得るが、私たちはこのために準備する必要があります私の説明に従うことを願っています。
編集アレクサンダーさんのコメント@への答えとして:
我々は、Javaのバックエンドを使用していて、私たちのJSONレスポンスを中心に、以下のHTML構造を使用します。
<html>
<head>
<script>
function doDomainRelaxing() {
var x = location.hostname.indexOf('.') + 1;
if (x > 0)
document.domain = location.hostname.substring(x);
}
doDomainRelaxing();
</script>
</head>
<body>
[{...}] //JSON response
</body>
</html>
私の知る限りでは、その理由は、ExtJSがファイルアップロードに隠されたiFrameを使用し、それがサーバからの応答を受信した後、レスポンスがiFrameから取得されてresponse.responseTextを偽造するというものでした。ブラウザーポップアップのドメインは緩和されますが、iFrameのドメインはそうではありません。したがって、同じ発信元ポリシーに問題があり、response.responseTextが空でした。これを解決するために、前述のHTMLラッパーを使用してiFrameのドメインをリラックスさせます。
どのバックエンドをお使いですか?私たちのファイルをC#バックエンドにアップロードするには、HTML構造は使用しません。これは特別に調整されたJSONレスポンスで、すべてのファイル名で動作します。 – Alexander