2

foo.bar.combar.comという異なるドメインに 2 つのアプリケーションがあり 、最初のドメインから 2 番目のドメインにリクエストを送信しようとしています。このために、web.xmlの2 番目のドメインにフィルターを追加しました。

<filter>
   <filter-name>CORS</filter-name>
   <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>

また、IE ブラウザーを除くすべてのブラウザーで機能します。IE の場合、最初のサーバー ob JS に特別な条件を追加しました。

if ($.browser.msie && window.XDomainRequest) {
            var xdr = new XDomainRequest();
            xdr.open("POST", "http://bar.com/user/login");
            var loginParam = get param here;
            var passParam = get param here;
            xdr.send("login=" + loginParam + "&password=" + passParam);
            xdr.onerror = function () {
                alert('in error');
            };
            xdr.onload = function () {
                alert(xdr.responseText);
            }
        } else {
            //Simple AJAX request
        }
    });

この後、サーバーフィルターでリクエストを取得しました! しかし、パラメータがありません。ログインパスワードがありません。状況で私は何をすべきですか?IE でクロスドメイン POST リクエストを実行するにはどうすればよいですか?

4

1 に答える 1

0

私は同様の問題を抱えていました。IE8/IE9 の場合、 XDocumentRequest はリクエストに Content-Type ヘッダーを設定しないことが判明しました。デフォルトはtext/plainです。

Content-Type が に設定されていない限り、Spring MVC などのサーバー フレームワークはフォーム パラメータをバインドしませんapplication/x-www-form-urlencoded。そのため、フォーム パラメータをバインドするには、サーバー上で何かカスタムを行う必要があります。

于 2013-11-08T20:01:38.683 に答える