如何知道请求是否来自jQuery $ .ajax()

Ben*_*rey 0 php ajax jquery

我想确定是否已经从jQuery $.ajax()方法向REST API发出了请求.

使用向发送到服务器的数据添加布尔值或添加标头的明显答案之一回答此问题之前,我不想这样做...

显然这可以这样实现:

$.ajax({
    data: {
         sentViaAjax: 'true'
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,出于各种原因,我希望布尔/附加标头保持对代码隐藏.

因此,我想知道的是jQuery在发出请求时是否以任何特定形式将任何其他数据发送到服务器?

我已经尝试打印出$_REQUEST阵列,但除了发送的数据之外,它不包含任何内容.是否有任何独特的标题需要注意?如果是这样,它们是否可靠,如果它们一直存在吗?

T.J*_*der 6

jQuery在非跨域ajax请求上发送以下标头:

X-Requested-With: XMLHttpRequest

因此,您可以在请求中查找该标头.

  • @BenCarey:我会尽量避免关心请求是如何生成的.请注意,如果有人想要,他们可以修改jQuery不发送标题,或直接使用`XMLHttpRequest`,或者使用甚至不是浏览器一部分的工具来发送完全自定义的请求...... (4认同)