区分AJAX呼叫/浏览器请求

时间:2008-10-19 08:33:55

标签: javascript ajax http-headers xmlhttprequest

HTTP请求的标头中是否有任何内容可以区分AJAX调用和来自给定客户端的直接浏览器请求?用户代理字符串通常是否相同?

2 个答案:

答案 0 :(得分:33)

如果您使用Prototype,jQuery,Mootools或YUI,您应该找到 X-Requested-With:XMLHttpRequest 标题,它将为您提供帮助。应该可以在其他库中插入您喜欢的任何标题。

在最低级别,给定XMLHttpRequest或XMLHTTP对象,您可以使用setRequestHeader方法设置此标头,如下所示:

xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

答案 1 :(得分:0)

经过一些研究,看起来最好的方法是在进行AJAX调用时简单地指定自定义用户代理字符串,然后在服务器上检查此自定义用户代理字符串。