从 jQuery.Post 获取响应内容类型
Posted
技术标签:
【中文标题】从 jQuery.Post 获取响应内容类型【英文标题】:Getting the response content-type from jQuery.Post 【发布时间】:2011-05-02 08:58:41 【问题描述】:在使用 jQuery.Post 时有没有办法发现响应的内容类型?
我在模态窗口中有一个表单,我的想法是如果表单无效,则发送 html sn-p 并将模态的内容替换为此 sn-p,如果它是有效的我想要一个简单的字符串,其中包含 Flash 通知的内容(在 SO 上使用的类型)。
目前我正在测试返回的字符串是否以“success”开头,如果是,则使用字符串的其余部分作为 flash 通知。这显然是一个很老套的解决方案,我真的不喜欢它。
理想情况下,我希望能够对响应有条件,如果是“text/html”,则插入 sn-p,如果是“application/JSON”,那么我不仅可以发送消息对于帮助者,但可能还有其他数据(消息、id、更具体的成功/失败消息类型等),这将有助于将来扩展到其他形式。
【问题讨论】:
【参考方案1】: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
);
【讨论】:
以上是关于从 jQuery.Post 获取响应内容类型的主要内容,如果未能解决你的问题,请参考以下文章
如何从 HttpServletResponse 获取 HTML 内容?