You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel无法识别Postman发起的请求为Ajax请求

解决Laravel中$request->ajax()在Postman请求下返回FALSE的问题

我来帮你搞定这个问题!其实核心原因是Laravel的$request->ajax()方法判断逻辑和你想的不一样,它并不依赖Accept: application/json头,而是看请求里有没有X-Requested-With: XMLHttpRequest这个特殊头。

为什么会这样?

Laravel的ajax()方法底层是检查X-Requested-With请求头是否等于XMLHttpRequest——这是jQuery等前端框架发起AJAX请求时默认会带上的头,但Postman不会自动添加这个头,所以即使你加了Accept: application/json,$request->ajax()还是会返回false。

解决方案1:给Postman添加X-Requested-With请求头

在Postman的请求头列表里新增一条:

  • 键:X-Requested-With
  • 值:XMLHttpRequest

添加之后再发起请求,$request->ajax()就会正确返回true了。

解决方案2:改用更适合API场景的判断方法

如果你的接口主要是给API调用(比如Postman、移动端)用的,推荐用$request->wantsJson()或者$request->isJson()来替代ajax():

  • $request->wantsJson():会检查请求的Accept头是否包含application/json,或者请求是AJAX类型,兼容性更广。
  • $request->isJson():检查请求的Content-Type头是否是application/json。

举个代码例子:

// 原来的代码
if ($request->ajax()) {
    // 处理AJAX请求
}

// 改成更适合API的写法
if ($request->wantsJson()) {
    // 处理API/AJAX请求
}

这样不管是前端AJAX请求,还是Postman这类API工具调用,都能正确识别。

内容的提问来源于stack exchange,提问作者Harpreet Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 13:27:51