当前位置: 首页 > 知识库问答 >
问题:

Laravel$request->expectsJson()

阎宝
2023-03-14

我正在为我的Laravel应用程序进行Ajax登录。

我使用的是角度:

$http({
  method: 'POST',
  url: '/admin/login',
  headers: {
        'Content-Type': 'application/json'
  },
  data: {email:$scope.email,password:$scope.password}
})

这个请求工作正常,我的问题是Laravel的响应总是重定向我,因为如果我没有发送JSON,它应该:

protected function sendFailedLoginResponse(Request $request)
    {
        $errors = [$this->username() => trans('auth.failed')];
        if ($request->expectsJson()) {
            return response()->json($errors, 422);
        }
        return redirect()->back()
            ->withInput($request->only($this->username(), 'remember'))
            ->withErrors($errors);
    }

这就是Laravel框架代码。它不断重定向我回来,但我想触发条件如果($请求-

为了触发条件,我错过了什么?

我甚至补充说:

 headers: {
        'Content-Type': 'application/json','X-Requested-With' :'XMLHttpRequest'
  }

但还是不行。

expectsJson():

public function expectsJson()
    {
        return ($this->ajax() && ! $this->pjax()) || $this->wantsJson();
    }

我的标题:

接受:application/json、text/plain、/

接受编码:gzip,deflate

接受语言: en-US, en; q=0.8

连接:保持活力

内容-长度: 57

内容类型:application/json

X-请求-与:XMLHttpRequest

出于安全原因,我不包括令牌/cookie和原始网址,但它们在那里。

编辑:我试图清除artisan缓存,但仍然一无所获。

php artisan缓存:清除

也是

作曲家转储-自动加载


共有1个答案

陆甫
2023-03-14

您应该使用Accept键而不是Content/type。有关更多详细信息,请查看此github讨论

 类似资料:
  • 我已经创建了一个视图来创建新的课程' create.blade.php '。我试图将这些数据存储在数据库中,但是我得到了以下错误: BadMethodCallException Method Illuminate\Http\Request::request 不存在。 我不确定是什么导致了这个错误,因为我已经在我的控制器中引用了请求名称空间。见下文; CoursesController.php; 创

  • 有人能告诉我我做错了什么吗?

  • 是什么原因导致Laravel忽略该文件?输入文件的 不是? 下面回答了这个问题。

  • 问题内容: 我正在使用angularjs和laravel 4构建应用程序。一切都很好,但是我现在只允许XHR请求。 这就是我刚开始使用控制器时所拥有的。但是这个说法总是错误的。 在角度我正在使用标准的$ http服务。 问题答案: 进行AJAX调用时,标头通常设置为。Laravel的方法建立在Symfony2方法的基础上,该方法仅检查此标头的存在。 在2012年10月,Angular.js 删除了

  • 我是一个Laravel新手,我正在转换一个php/jQuery应用程序到Laravel。原始代码使用带有ajax POST的JSON数组,检索如下: 我在POST方面也做了很多相同的事情,但我在我的Laravel$请求收集中没有看到任何数据。我是否需要做一些特殊的事情来检索如下结构的JSON数据: 这是我的jQuery ajax POST代码(带有硬编码数据) 这是我的控制器中接收POST的代码

  • 在Laravel中,我试图在我的控制器中的方法上调用,但我得到以下错误: 假设来自不兼容的上下文,则不应静态调用非静态方法 有什么能帮助找出纠正这种情况的最好方法吗?(我跟着一个Laracast)