jquery+;AJAX+;c#导致页面加载
我正在尝试进行Ajax调用,但这会导致页面加载 这是我的jquery代码jquery+;AJAX+;c#导致页面加载,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我正在尝试进行Ajax调用,但这会导致页面加载 这是我的jquery代码 var ajaxUrl = "AjaxCallHandler.aspx"; function _init_Chart() { $.ajax({ type: "GET", //GET or POST or PUT or DELETE verb url: ajaxUrl, // Location of the service data: "OpCode=GetCall
var ajaxUrl = "AjaxCallHandler.aspx";
function _init_Chart() {
$.ajax({
type: "GET", //GET or POST or PUT or DELETE verb
url: ajaxUrl, // Location of the service
data: "OpCode=GetCallAverageReportForGraph&Parms=DeptId^17~Month^10~Year^2012", //Data sent to server
contentType: "", // content type sent to server
dataType: "string", //Expected data format from server
processdata: true, //True or False
success: function (responseString) {//On Successful service call
alert(responseString);
}
});
return false;
}
这是我的AjaxCallHandler.aspx.cs c#代码
我不知道为什么这会导致页面加载。我不熟悉jquery AJAX,但当我尝试使用javascript AJAX时,它在没有任何页面加载的情况下运行良好。我假设这就是AjaxCallHandler.aspx背后的代码 如果是这样的话,您的AJAX调用实际上只是加载该页面的结果,就像您使用浏览器窗口(即GET)点击该页面一样 大多数情况下,当您想要执行AJAX请求时,您可能会对一个MVC函数调用它,该函数返回一个JSONResult ActionResult或一个Web服务(.asmx)
因为你只是在浏览一个普通的网页,它总是在该页面的代码后面执行页面加载事件。jquery AJAX就是这种情况。我问这个问题是因为我之前使用javascript AJAX,只调用了一个aspx页面,没有任何页面加载,它工作正常。这种行为有什么特殊原因吗?请求的页面可能已经被缓存了。HTTP和ASP.NET都有几层缓存。在这种情况下,将从缓存中检索处理程序的结果,而根本不调用其aspx处理程序。行为应该是相同的。IIS在执行其事件时不应该关心是谁发出GET请求stack@jade我想补充一点,正如Honza所指出的,如果您使用IE进行测试,通过AJAX缓存,它可以做一些奇怪的事情。你应该知道这可能解释了为什么你没有一致地看到刷新。缓存是个问题……将cache:false设置为AJAX调用解决了这个问题。你必须避免从AJAX调用完整的aspx页面,特别是这样,只需运行页面加载并使所有标题清晰即可。使用以太处理程序,以太Web服务。同样的代码还有其他问题。
protected void Page_Load(object sender, EventArgs e)
{
string responseMessage = "";
string status = "SUCCESS";
try
{
if (Request.QueryString["OpCode"] == null)
{
throw new Exception("Invalid Request, OpCode missing.");
}
string operationRequested = Request.QueryString["OpCode"];
string Params = Request.QueryString["Parms"];
switch (operationRequested)
{
case "GetCallAverageReportForGraph":
responseMessage = GetCallAverageReportForGraph(Params);
break;
case "GetCallAverageReportDetails":
responseMessage = GetCallAverageReportDetails(Params);
break;
}
}
catch (Exception exp)
{
status = "EXCEPTION";
responseMessage = exp.Message;
}
Response.ClearContent();
Response.ClearHeaders();
Response.Write(responseMessage);
}