区分 AJAX 调用/浏览器请求

Differentiating Between an AJAX Call / Browser Request

本文关键字:浏览器 请求 调用 AJAX 区分      更新时间:2023-09-26
HTTP 请求的

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

如果你使用Prototype,jQuery,Mootools或YUI,你应该找到一个X-Request-With:XMLHttpRequest头,它将为你做这个技巧。应该可以在其他库中插入您喜欢的任何标题。

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

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

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