3

私はこの2つの方法を試しました。

方法 1

function Login() {
    var email = encodeURIComponent($("#loginemail").val());
    var pass = encodeURIComponent($("#password").val());
    $.ajax({
        url:"/user/login",
        type: "POST",
        data: {email:email, password:pass},
        dataType: "json"
    }).done(LoginDone);
    //$.post("/user/login", {email:email, password:pass}, LoginDone);
}

方法 2

    function Login() {
        var email = encodeURIComponent($("#loginemail").val());
        var pass = encodeURIComponent($("#password").val());
        $.post("/user/login", {email:email, password:pass}, LoginDone);
    }

Chrome ではどちらの方法でも問題なく動作しますが、何らかの理由で IE ではデータ{email:email, password:pass}が送信されないPOSTか、まったく送信されません。

ローカル サーバーとライブ Web サーバーの両方で試しましたが、どちらも同じ結果でした。

ここでは IE10 を使用します。

4

6 に答える 6

3

@jQuery バグ トラッカーを修正できない: IE10/Windows 8 での AJAX 投稿

于 2012-12-05T16:08:47.180 に答える
0

詳細な debuggind の後、IE10 AJAX POST バグの回避策を見つけました。

GET で POST を使用しないでください。

$.post("Page.aspx?action=edit",a,function(data) {dataRow[0]=data; GoToShowMode(row)});

への変更

a.action=edit;
$.post("Page.aspx",a,function(data) {dataRow[0]=data; GoToShowMode(row)});
于 2012-12-28T11:53:31.863 に答える
0

Win7 x64 SP1 の IE 10 (10.0.9200.16521) でも同じ問題が発生しました。新しいバージョンのjQuery(1.8.3の代わりに1.9.1)を使用するだけで問題を解決しました

于 2013-04-07T14:26:53.770 に答える
-2

data: {email:email, password:pass}

する必要があります

data: {"email":email, "password":pass}

変数の値をキーとして渡しているため、サーバー側のリソースが期待しemailている場合、実際にはその変数の値が表示されますencodeURIComponent($("#loginemail").val())

これは IE10 の問題ではない可能性が高く、どのブラウザーでも記述どおりに動作しないはずです。

アップデート

IE 10 のバグ修正により、この回答は当てはまらない可能性があります。

この回答は間違っているため無視してください。承認されたため削除できません。

于 2012-06-28T00:09:32.137 に答える