我想爲我的asp.net Webservice做一個簡單的$ .ajax POST,返回Json。我嘗試了所有可能的解決方案,沒有任何運氣。我錯過了什麼嗎?Webservice忽略ResponseFormat.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,意外的標記<
更新2: 響應頭在我的舊的解決辦法是始終爲「text/xml的;字符集= UTF-8」。
更新3: 我的web.config中包含所有需要的條目。響應仍然是「text/xml; charset = utf-8」。爲什麼?
你想說什麼?錯誤?或什麼?請指定 –
我得到的模型,就像text/xml,而不是jquery中指定的application/json。 – Goran