Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery+;AJAX+;c#导致页面加载_C#_Jquery_Asp.net_Ajax - Fatal编程技术网

jquery+;AJAX+;c#导致页面加载

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

我正在尝试进行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=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);
}