我写了一个 [WebMethod],它返回一个存储序列化对象的字符串
[WebMethod]
public string doStuffs() {
...
return JavaScriptConvert.SerializeObject(myObj);
// JSON Serializer library is JSON.NET 1.3.1, for MONO
}
当我使用来自 JQuery 的 $.post 调用该方法时:
$.ajax({
type: "POST",
url: "/web/doStuffs",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do stuffs
}
});
问题在于反应。这是我得到的:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://localhost:8080/papi">{
"field1" : "value1", "field2 : "value2", etc etc}</string>
为什么 JSON 响应被封装在 XML 中?我可以从 HTTP 响应标头中看到(错误地?)设置为:
Content-Type text/xml; charset=utf-8
如何切换响应内容类型?谢谢。