2

Window.locationは、成功が応答した後、それが呼び出した成功関数であるajaxリクエストを呼び出したときに機能しません。

デバッガーのFirefoxでステップバイステップで実行すると、window.locationが機能します。

function login(){

var jason ={"usuario":document.getElementById("inputusuario").value,
        "password": document.getElementById("inputpassword").value
           };
            json =JSON.stringify(jason);

          console.log(json);

var onSuccess = function (data) {
    console.log('Success');
    window.location ='salas.html'

};
var onError = function (jqXHR, textStatus, errorThrown) {
    console.log(jqXHR);
    console.log(textStatus);
    console.log(errorThrown);
    alert("no se conecto");

};

var onBeforeSend = function () {
    console.log("Loading");
};

var jason ={"usuario":document.getElementById("inputusuario").value,
        "password": document.getElementById("inputpassword").value
           };

            json =JSON.stringify(jason);
$.ajax({

    url: "../reservaciones/index.php/login",
    type:"POST",
     data: json,
    cache: false,
    async: false,
    beforeSend: onBeforeSend,
    error: onError,
    success: onSuccess
 });
};
4

2 に答える 2

1

コードを正確にコピーし、適切な要素を追加したところ、問題なく動作しました。

これはあなたのコードです:jsフィドル

これらを試してください:

 1.試してみてくださいwindow.location.assign()。これは、まさにこの問題を解決することが知られています。

 2.実行してみますasync: true。あなたのコードから、実行したい理由がわかりませんfalse。それがタイミングの問題を引き起こす可能性があります。

于 2013-03-05T05:12:10.777 に答える