为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中使用 Fetch API 拉取数据时,`$request->ajax()`

在 Laravel 中使用 Fetch API 拉取数据时,`$request->ajax()`

PHP
眼眸繁星 2023-04-23 17:50:59
在我的Laravel应用程序中,我正在使用Fetch API滚动加载数据。下面是我JS在刀片文件中的代码let route = '{{ route("load") }}' + '?q=' + encodeURI('{{ $para }}');fetch(route).then(response => {   if(!response.ok) {       throw new Error('Network response was not ok');   }   return response.text();}).then(data => {                          console.log(data);                       }).catch((error) => {   console.error('Error:', error);})在我的控制器中public function loadData( Request $request ){    if( $request->ajax() ) {       return $request->query('q');     }     return 'Not Ajax!';}它总是返回“不是 Ajax!”;我不确定为什么会这样。这不是其他库的问题,例如jQuery或Axios
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

Request::ajax()检查标头是否存在X-Requested-With

由于您使用的是获取,因此必须手动将此标头添加到选项对象中:

fetch(route, {

  headers: {

    'X-Requested-With': 'XMLHttpRequest'

  },

})

例如,由于bootstrap.js 文件的设置方式,Axios 默认使用它。jQuery会为每个请求自动添加它,但跨域请求除外。



查看完整回答
反对 回复 2023-04-23
?
月关宝盒

TA贡献1772条经验 获得超5个赞

在您的方法中使用“return”时要小心。尝试附上 return 'Not Ajax!'; 在别的

else{
    return 'Not Ajax!';
}


查看完整回答
反对 回复 2023-04-23
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

请尝试使用request()->ajax()函数而不是$request->ajax()。我认为问题是您在顶部导入了错误的请求。它发生在我身上也是因为编辑器



查看完整回答
反对 回复 2023-04-23
  • 3 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信