jquery ajax 获取
Posted
技术标签:
【中文标题】jquery ajax 获取【英文标题】:jquery ajax get 【发布时间】:2011-05-03 11:41:57 【问题描述】:为什么这不起作用? (我什么都试过了!)
$.ajax(
type: "GET",
contentType: "application/json; charset=utf-8",
url: "Webservice.asmx/HelloWorld",
data: param1: "aaa" ,
success: function (msg)
alert(msg.d);
);
网络服务
[WebMethod]
[ScriptMethod(UseHttpGet = true, XmlSerializeString = false, ResponseFormat = ResponseFormat.Json)]
public string HelloWorld(string param1)
return "Hello World";
错误信息
"Message":"Invalid JSON primitive: aaa.","StackTrace":" at System.Web.Script.Serialization.javascriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer .DeserializeInternal(Int32 深度)\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(字符串输入,Int32 depthLimit,JavaScriptSerializer 序列化程序)\r\n 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer序列化程序、字符串输入、类型类型、Int32 depthLimit)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParamsFromGetRequest(HttpContext 上下文、JavaScriptSerializer 序列化程序、WebServiceMethodData methodData)\r\n 在 System.Web.Script.Services。 RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentExcept离子"
【问题讨论】:
【参考方案1】:尝试使您的数据成为完整的字符串,例如:
$.ajax(
type: "GET",
contentType: "application/json; charset=utf-8",
url: "Webservice.asmx/HelloWorld",
data: ' "param1": "aaa" ',
success: function (msg)
alert(msg.d);
);
【讨论】:
【参考方案2】:使用 ASP.NET,您的 ajax 请求必须是 POST 才能使用 JSON。
$.ajax(
// type: "GET",
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Webservice.asmx/HelloWorld",
data: ' param1: value1, param2: value2 ',
success: function (msg)
alert(msg.d);
);
请参阅this 了解更多信息。
【讨论】:
【参考方案3】:作为使用稍微烦人的 Web 服务项目的替代方法,我建议研究 asp.net mvc 并使用控制器作为您的“服务”。
【讨论】:
以上是关于jquery ajax 获取的主要内容,如果未能解决你的问题,请参考以下文章