2012-08-03 50 views
0

我google了許多類似的情況,但他們都不能解決我的問題。請在我的代碼來看看:只是另一個jQuery AJAX沒有POST參數正確

的JavaScript:

$.ajax({ 
     type: 'POST', 
     url: 'alarmInfo.aspx', 
     data: {request:'BasicGpaInfo'}, 
     dataType: "json", 
     success: function (data) { 
      alert(data); 
     }, 
     error: function() { 
      alert("Error in loading alarm information!"); 
     } 
    }); 

ASP.NET:

protected void Page_Load(object sender, EventArgs e) 
    { 
      if (Request.Form["request"] == "BasicGpaInfo") 
      { 
       Response.Write(BasicGpaInfo()); 
      } 
      else 
      { 
       Response.Write("Nothing"); 
      } 
    } 

這總是返回 「無」 和斷點告訴Request.Form爲空。我已經嘗試了GETRequest.QueryString,它給出了相同的情況。

我想有什麼毛病data在AJAX功能,我已經用下面的東西會忍不住嘗試:

 data: $.param({request:'BasicGpaInfo'}) 
     data: "{request:'BasicGpaInfo'}" 
     data: {request:'BasicGpaInfo'} 

它不會在所有的Web瀏覽器。

請給點建議。謝謝!

+0

我相當肯定的問題是不是與JavaScript的 - 一切都是爲了那裏。只需使用普通的javascript對象,不需要'$ .param'。你使用的是Firefox嗎?如果是,你有Firebug嗎?您可以檢查使用Firebug發送的發佈數據,或使用Chrome內置控制檯。在Chrome中,點擊F12,在Firefox中插入Firebug,然後點擊F12。 – 2012-08-03 06:36:05

+0

沒有參數在Firefox或Chrome中發佈 – Ovilia 2012-08-03 06:56:11

回答

1

我測試你的代碼,它運行良好json2.js文件。但它總是返回「加載警報信息時出錯!」因爲你沒有從服務器返回Json。

Javascript是好的,一旦你返回json,它將會成功。

您在返回整個頁面,並且您的AJAX方法是從BasicGpaInfo()得到整個HTML而不是Json的

嘗試把在警報斷點,你會看到所有的數據來自內部的數據

error: function (data) { 
alert("Error in loading alarm information!"); 
} 

或者嘗試

error: function (data) { 
alert(data); 
} 

下面是完整的代碼

$.ajax({ 
       type: 'POST', 
       url: 'Default.aspx/BasicGpaInfoWebMethod', 
       data: { request: 'BasicGpaInfo' }, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        alert(data); 
       }, 
       error: function (data) { 
        alert("Error in loading alarm information!"); 
        //alert(data); // uncomment to see the whole response 
       } 
      }); 

和你的WebMethod將是:

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string BasicGpaInfoWebMethod(string request) 
    { 
     return request; 
    } 
+0

非常感謝〜 – Ovilia 2012-08-03 12:15:38

0

在發佈之前試試這個JSON.stringify。對於IE <透過JSON.stringify = 7包括來自json.org所

$.ajax({ 
     type: 'POST', 
     url: 'alarmInfo.aspx', 
     data: JSON.stringify({ request: 'BasicGpaInfo'}), 
     dataType: "json", 
     success: function (data) { 
      alert(data); 
     }, 
     error: function() { 
      alert("Error in loading alarm information!"); 
     } 
    });