2015-02-07 46 views
0
$.ajax({ 
     type: 'POST', 
     headers: { "cache-control": "no-cache" }, 
     url: '/Service.asmx/ProcessRequest', 
     async: true, 
     cache: false, 
     data: 'controller=cart&add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ((parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination) : ''), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (jsonData, textStatus, jqXHR) { 
     } 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert(XMLHttpRequest.responseText); 
     } 

服務器功能:無效JSON跟蹤與jQuery ajax調用

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string ProcessRequest(string controller, int add, bool ajax, int qty, int id_product, string token, string ipa) 
{ 
    string results = "{" + CartControllerResponse() + "}"; 
    return results; 
} 

我收到的Ajax錯誤是這樣的:{"Message":"Invalid JSON primitive: controller.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}

我到底做錯了什麼?

回答

0

您要發送的數據是無效的JSON。它應該是這種格式:

data: 'controller=cart&add=1&ajax=true ... 

{"controller":"cart","add":1, "ajax":true ...} 

但你以這種格式發送它