从jQuery.Post获取响应内容类型
问题描述:
使用jQuery.Post发现响应的内容类型有什么方法吗?从jQuery.Post获取响应内容类型
我在模态窗口中有一个窗体,其想法是,如果窗体无效,则会发送一个HTML代码片段,并将模型的内容替换为此代码片段,如果它有效,我想要一个简单的字符串用于闪光通知的内容(在此使用的类型)。
目前我正在测试返回的字符串是否以“success”开头,如果是这样,则使用字符串的其余部分作为Flash通知。这显然是一个很难解决的问题,我真的不喜欢它。
理想情况下,我希望能够有条件的响应,如果它是“文本/ HTML”,然后插入片段,如果它是“应用程序/ JSON”,那么我不能只发送消息帮助者,但潜在的其他数据(消息,ID,更具体类型的成功/失败消息等),这将有助于将来扩展到其他形式。
答
jQuery将已经detect and convert the response based on the content type header(如果在$.ajax()
调用中没有指定type
)。例如:if it finds "json"
in the content-type header, it'll be an object。你可以这样做:
$.post("myPage.html", { name: "value" }, function(data) {
if(typeof(data) === "string") {
//html
} else {
//JSON
}
});
或者,总是传回JSON,并有通知消息作为它的属性,例如:
$.post("myPage.html", { name: "value" }, function(data) {
if(data.notification) {
showMessage(data.notification);
} else {
//use the data object
}
});
Urgh的typeof,当然要归功于为答案。 – Chao 2010-10-29 14:16:05
实际上'type'是'method'的别名。 你的意思是'dataType'我猜... – DUzun 2015-07-13 10:57:54