[英]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個問題。
網址永遠不會更改。我發布數據后。
我無法在瀏覽器中點擊“ 返回 , 前進 ”。如果我通過輸入“f5”刷新瀏覽器,頁面打開上一頁而不是當前頁面。
任何幫助將不勝感激。
問題是你正在做一個ajax請求,ajax請求不會修改瀏覽器歷史記錄,因此你不能回去。
您可以使用HTML5 pushState()通過JS和歷史標簽修改歷史記錄。 在JS中,您可以使用window.location.hash來修改URL主題標簽。
這個問題的第一個答案可以為主題帶來更多亮點: 更改瀏覽器中的URL,而無需使用JavaScript加載新頁面
那是我的朋友阿賈克斯。 網址不會改變。 數據將以Html形式到達,因為您正在渲染視圖。 您可以更改頁面的塊,但不是重定向URL。
那是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);
}
});
}
如果您想使用ajax發布數據並希望獲得對url的支持,則需要圍繞此概念設計應用程序。
我建議看看emberjs或sammyjs。 這些是圍繞這個url-state-concept構建應用程序的優秀框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.