代码如下:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script>
window.location.host;
$(document).ready(function () {
$("#btnTestGet").click(function () {
jQuery.get("About.aspx", { name: "alex" }, function () { alert("aaa")});
});
});
</script>
<button id="btnTestGet" value="Test JQuery" >Test JQuery</button>
</asp:Content>
问题分析:
有些Jquery 教程上说,使用jquery.get(url,data,function(){})可以跳转。
以上代码却没有跳转,如果中间有错误的话,不能执行回调函数的,但以上代码却执行了,原因何在?
经过分析得知,jquery.get(url,data,function(){})这个是ajax的方法,是不会跳转的。
要跳转的话,需要在回调函数里function(){//这里做跳转吧;}才行,因为Ajax本身就是为了实现异步请求局部刷新,当然不会跳转页面。
跳转页面前台直接用document.Url=”xx.aspx”;或window.location.href=”xx.aspx”;和ajax没有关系,正确的ajax做法是回调函数中获取后台返回的值,然后据此操作html属性方法,局部更新页面。
如此,便解决了jquery.get提交页面不跳转的问题,这个折腾啊。