Javascript 如何检查AJAX响应在jQuery中是否包含HTML内容?
我有一个页面,其中有一个表单和两个在成功调用AJAX时可能的响应,其中一个只返回状态代码 我需要做的是检查success回调中的Javascript 如何检查AJAX响应在jQuery中是否包含HTML内容?,javascript,jquery,ajax,response,Javascript,Jquery,Ajax,Response,我有一个页面,其中有一个表单和两个在成功调用AJAX时可能的响应,其中一个只返回状态代码 我需要做的是检查success回调中的response对象中的任何HTML内容,以便在页面上显示它们 我已经知道我可以通过将其添加为参数来访问回调中的响应,如下所示: 功能成功(响应){} 我唯一搞不清楚的是如何检查该对象是否有HTML内容。如何执行此操作?您可能希望查看HTML MIME类型的响应头。将对象传递回您的success回调,然后您可以调用该回调: 您知道成功时的确切响应吗?如果知道,您可以检查
response
对象中的任何HTML内容,以便在页面上显示它们
我已经知道我可以通过将其添加为参数来访问回调中的响应
,如下所示:
功能成功(响应){}
我唯一搞不清楚的是如何检查该对象是否有HTML内容。如何执行此操作?您可能希望查看HTML MIME类型的响应头。将对象传递回您的
success
回调,然后您可以调用该回调:
您知道成功时的确切响应吗?如果知道,您可以检查是否成功,如果不知道,则假定为html/failure。如果只返回状态代码,
if(response.indexOf)(““成功调用AJAX时,两个可能的响应,其中一个仅返回状态代码。”两个响应都返回成功状态。其中一个将具有HTML。在jQuery中,我需要检查响应是否具有HTML,以便可以显示它。@Ohgod为什么我喜欢这个建议,但这真的是检查响应是否具有HTML的最佳方法吗?我觉得这不完全是最佳做法…这根本不是最佳做法…而是您发送的方式如果成功,我会发回echo json_encode(数组('success'=>true,'html'=>'')
,否则,echo json_encode(数组('success'=>false))
不成功时,检查是否resonse.success!==false
我很确定这正是我所需要的。谢谢。我编辑了我的答案,用indexOf()检查是否存在text/html
)
因为该标题的值可能包含其他信息:例如,text/html;charset=utf-8
我目前无法测试它,但今天晚些时候事情解决后,我将重新讨论这个问题。谢谢你的建议!
function success( response, status, jqXHR ) {
if( jqXHR.getResponseHeader('content-type').indexOf('text/html') >= 0 ) {
...
}
}