2012-11-16 35 views
0

這裏是我的jQuery代碼Ajax調用不返回從C#代碼響應

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; 

}

這裏是我的C#代碼

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); 
    } 

我試圖把一個斷點在C#代碼。它正在寫從c#代碼Response.Write,但我無法接收jQuery代碼中的響應。任何人都可以指出這個問題嗎?

+0

嘗試刪除Response.ClearHeaders()和ClearContent()行並檢查 –

+0

添加錯誤回調以查看調用中是否發生了錯誤。 – didierc

+0

嘗試向Ajax調用添加錯誤處理程序,並查看是否有任何錯誤並確保responseMessage的值爲 –

回答

0

更改數據類型爲字符串的HTML或保留空白的默認類型

參考http://api.jquery.com/jQuery.ajax/

+0

哇...... ..... dat像個魅力:) – iJade

+0

@jade。就我所見,這個答案不會給ajax。閱讀我的答案。 – gdoron

+0

@gdoron他只是簡單地調用一個頁面而不是頁面方法。所以我回答了 –

0

你的代碼中有很多缺失的東西。

您需要打上屬性WebMethod一個靜態方法:

[WebMethod] 
public static RetrunValue Foo() 
{ 
    ... 
} 

的數據必須是JSON在asp.net格式。

You should read this article

+0

但它不是Web服務 – iJade

+0

@jade您必須避免以這種方式使用整個頁面,以太網製作一個web方法,以太網一個web處理程序。而且你還需要澄清什麼是真正的問題,頁面被稱爲?你做調試嗎? – Aristos

+0

@jade。從我看到的當我使用ajax到asp.net時,你需要做所有我寫的東西。 – gdoron

0

寫代碼的代碼behid這種方式。

Response.Clear(); 
     Response.Write("Your response in string"); 
     Response.End(); 

請不,如果你的反應是在HTML中你必須通過在回覆於字符串(「你的字符串」),如果你的反應是JSON格式寫你這樣的代碼。

string json = JsonConvert.SerializeObject(List<object> of your code); 
     Response.Clear(); 
     Response.Write(json); 
     Response.End(); 
+0

哪個庫用於JsonConvert – iJade

+0

你必須使用「Newtonsoft.Json」dll。 –

+0

只寫了Response.End();在代碼的最後。 –