2015-10-19 101 views
0

我對jquery ajax數據格式有疑問。從客戶端傳輸到服務器時,用戶數據的數據類型是什麼? 。如果數據傳遞的是數據:{//用戶數據}給出500個錯誤。但是如果像數據一樣傳遞:「{}」或數據:「{}」,則結果爲成功。我是否需要在「'或」「之間包含數據?jquery ajax發佈數據查詢

$.ajax({ 
       type: "POST", 
       url: "Contact.aspx/add", 
       dataType: "json", 
       data: '{ "Data": "hii" }', 
       contentType: "application/json; charset=utf-8", 
       success: function (response) { 

       }, 

       error: function (msg) { 
        alert(msg.status); 
       } 
      }); 
     ------c#------- 
     [WebMethod] 
    public static void add(string Data) 
    { 
    } 
+0

'500'表示服務器出現錯誤,可能是服務器期待JSON格式的數據 – Tushar

+0

在您的Web方法中使用Request.Form [「Data」]。而不是使用字符串數據參數 –

回答

0

您需要使用JSON.stringify來將obj數據串聯起來。

var jsonData = JSON.stringify({ "Data": "hii" }); 
$.ajax({ 
        type: "POST", 
        url: "Contact.aspx/add", 
        dataType: "json", 
        data: jsonData, 
        contentType: "application/json; charset=utf-8", 
        success: function (response) { 

        }, 

        error: function (msg) { 
         alert(msg.status); 
        } 
       }); 
      ------c#------- 
      [WebMethod] 
     public static void add(string Data) 
     { 
     } 
+0

,但我可以使用http post方法,如下面的$ .post(「Contact.aspx/add」,{'Data':''+ JSON.stringify(arr)+''},function(result ){}); 。這裏不需要任何單引號或雙引號。當比較兩個post方法讓我迷惑 – nichu09

+0

請參閱http://stackoverflow.com/a/3870116/2074346的答案,你可以看到差異。 –

0

,你可以做這樣的:

$阿賈克斯({ 類型: 「POST」, 網址: 「Contact.aspx /添加」, 數據類型: 「JSON」, 數據:{ 數據:「hii」, }, success:function(response){ }, });

希望它有幫助。