我遇到了这个问题中提出的确切问题
ASP.NET JSON web service always return the JSON response wrapped in XML
现在已经很晚了,我已经坐在这把椅子上10个小时了,现在试图让ajax和json工作,我所得到的都非常沮丧。
那么有谁知道如何让我的webservice不返回包装在xml中的json对象?如果我只做一个直接的dataType:“json”那么我什么也得不到。我必须做dataType:“jsonp”来从服务器获取任何东西。但是一旦我做了jsonp,我就把我的json包装成xml。
请帮忙 谢谢 谢丽尔
答案 0 :(得分:3)
如果您将响应类型设置为json
jQuery is then checking the response to see if it's valid JSON(因为它是XML,情况并非如此)......当它无效时,它会自动失败,因为 jQuery 1.4+ < /强>
在提出请求时,有3个重要位,by default it needs to be a POST
,您需要将contentType
设置为"application/json; charset=utf-8"
,如下所示:
$.ajax({
url: 'MyService.asmx/Method',
type: 'POST',
data: myData,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
//do something with data
}
});
然后在服务器端确保您拥有ScriptService
attribute设置,这是一个示例非常最小布局:
[WebService] //here by default when you create the service
[ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
public MyObject MyMethod(int id)
{
return new MyObject();
}
}