簡體   English   中英

Ajax發布參數ASP.NET MVC 3

[英]Ajax post parameters ASP.NET MVC 3

大家好,我有下一個ajax電話需要登錄。 我對表格進行序列化,然后將數據發送到服務器並返回重定向URL鏈接。 我的問題是發布后的網址就像

http://localhost:50802/?username=&password= and not http://localhost:50802/Home

$.ajax({
                type: "POST",
                url: "Login/Login",
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                data: loginJson,
                cache: true,
                async: false,
                complete: function (result) {
                    alert(result.link);
                    window.location.replace = "/Home/Index";
                },
                error: function () {
                    $("#username").val("");
                    $("#password").val("");
                    alert("Wrong Username or Password!");
                }
            }); //end ajax call

看起來您在提交按鈕的.submit事件或表單的.submit事件中編寫了$.ajax調用, .click沒有通過從回調返回false或對參數調用preventDefault來取消默認操作。 您的代碼應如下所示:

$('#id_of_your_form').submit(function(e) {
    e.preventdefault(); // <-- That's what I am talking about and what you forgot

    $.ajax({
        type: "POST",
        url: "Login/Login",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        data: loginJson,
        cache: true,
        async: false,
        complete: function (result) {
            window.location.replace = "/Home/Index";
        },
        error: function () {
            $("#username").val("");
            $("#password").val("");
            alert("Wrong Username or Password!");
        }
    }); //end ajax call
});

async: false, ????? 您知道這是什么,對嗎? 那不是AJAX。 這是對您的網絡服務器的阻塞同步調用,在此期間客戶端瀏覽器將被凍結,就像在《冰河世紀2》中摧毀所有用戶體驗一樣。

嘗試在您的Submit函數結尾處返回false

$('#id_of_your_form').submit(function(e) {
$.ajax({
    type: "POST",
    url: "Login/Login",
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: loginJson,
    cache: true,
    async: false,
    complete: function (result) {
        window.location = "/Home/Index";
    },
    error: function () {
        $("#username").val("");
        $("#password").val("");
        alert("Wrong Username or Password!");
    }
}); //end ajax call
return false; });

當然,另一個選擇是從控制器返回正確的重定向鏈接,而不是在Java腳本中覆蓋它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM