我想做一个简单的 $.ajax POST 到我的 asp.net Webservice,返回 Json。我已经尝试了所有可能的解决方案,但没有任何运气。我错过了什么吗?
我的 jQuery 代码:
$.ajax({
type: "POST",
url: "/Services/ConfiguratorService.asmx/GetInitialJson",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: function (data, textStatus, jqXhr) {
if (data != null) {
alert(data.d);
} else {
alert("data undefined: | " + jqXhr + " | " + textStatus);
}
},
error: function (jqXhr, textStatus, errorThrown) {
alert(jqXhr + " | " + textStatus + " | " + errorThrown);
}
});
我的 asmx.cs 代码:
[WebMethod(Description = "Gets initial configuration values for Configurator")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, XmlSerializeString = false)]
public ConfiguratorModel GetInitialModel()
{
return new Item { Title: "10 units", Text: "Item text..." };
}
public class Item { public string Title {get; set;} public string Text {get; set;} }
更新 1:在我的解决方案中,我得到了回复,但只是作为 XML。我试图在一个新的解决方案中重现该错误,但没有运气。一切正常。新旧解决方案中的 .asmx 服务实际上返回相同的响应。唯一的区别是其中一个中的 jquery 失败并出现错误:parsererror, unexpected token <
更新 2:我的旧解决方案中的响应标头始终是“text/xml; charset=utf-8”。
更新 3:我的 web.config 包含所有必需的条目。响应仍然是“text/xml;charset=utf-8”。为什么?