簡體   English   中英

Javascript Ajax發布數據

[英]Javascript Ajax Post Data

使用Javascript:

    function LoginButton1OnClick() {
        $.ajax({
            type: "POST",
            url: "Login/MainPageRegister",
            cache:false,
            data:
                {
                    LoginEmailText: $("#LoginEmailText").val(),
                    LoginPasswordText: $("#LoginPasswordText").val(),
                },
            success: function (mydata) {
                $("#BodyPage").html(mydata);
            }
        });
    }

的ActionResult:

 [HttpPost]
    public ActionResult MainPageRegister(MyModel model)
    {
        return View();
    }

我將數據發布到“MainPageRegister”。但是發生了2個問題。

  1. 網址永遠不會更改。我發布數據后。

  2. 我無法在瀏覽器中點擊“ 返回前進 ”。如果我通過輸入“f5”刷新瀏覽器,頁面打開上一頁而不是當前頁面。

任何幫助將不勝感激。

問題是你正在做一個ajax請求,ajax請求不會修改瀏覽器歷史記錄,因此你不能回去。

您可以使用HTML5 pushState()通過JS和歷史標簽修改歷史記錄。 在JS中,您可以使用window.location.hash來修改URL主題標簽。

這個問題的第一個答案可以為主題帶來更多亮點: 更改瀏覽器中的URL,而無需使用JavaScript加載新頁面

  1. 那是我的朋友阿賈克斯。 網址不會改變。 數據將以Html形式到達,因為您正在渲染視圖。 您可以更改頁面的塊,但不是重定向URL。

  2. 那是Ajax了。 找到以下解決方法Html 5或JS

哈希網址的快速示例

var storedHash = window.location.hash; //get hash
    if (storedHash !== '') { //if no empty
        hashChanged(storedHash);
    }
window.setInterval(function () {
        if (window.location.hash != storedHash) { //chek if curent hash not == to stored hash when page was opened
            storedHash = window.location.hash;
            hashChanged(storedHash); //if change call a funcin
        }
    }, 100); //check hash if changed

function hashChanged(storedHash) {
    var link = storedHash.substr(1, storedHash.length); //get the link
    $.ajax({
        type: "POST",
        url: link+".php", //in browser url should look like #profile so when somebody 
        cache:false,
        data:
            {
                LoginEmailText: $("#LoginEmailText").val(),
                LoginPasswordText: $("#LoginPasswordText").val(),
            },
        success: function (mydata) {
            $("#BodyPage").html(mydata);
        }
    });
    }
  1. 你來到網站example.com
  2. 如果您更改為example.com #profile
  3. 它會自動運行ajax函數將POST數據發送到profile.php
  4. 如果#will #page它會將數據發布到page.php等等,我沒有檢查代碼,但應該運行console.log()for storedHash來檢查工作方式!

如果您想使用ajax發布數據並希望獲得對url的支持,則需要圍繞此概念設計應用程序。

我建議看看emberjs或sammyjs。 這些是圍繞這個url-state-concept構建應用程序的優秀框架。

http://sammyjs.org/ http://emberjs.com/

暫無
暫無

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

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