【问题标题】:Laravel/angular - 400 bad requestLaravel/angular - 400 错误请求
【发布时间】:2016-12-29 04:06:43
【问题描述】:

我正在用 ionic 制作一个应用程序,后端是用 Laravel 制作的。我正在开发密码重置功能,当我在 chrome 中测试端点时,我不断收到上述错误。这是联系信息功能的代码:

    sendContactConfirmation: function(contact, reset) {
      var defer = $q.defer();

      if(reset == 'reset'){
        var endpointUrl = $http.post(AppSettings.apiUrl + "/users/reset", { phone: contact });
      }
      else {
        var endpointUrl = $http.post(AppSettings.apiUrl + "/users", { phone: contact });
      }

      endpointUrl.then(function(result) {
        service.set(result.data.user);
        defer.resolve(result);
      }, function(error) {
        defer.reject(error);
      });

      return defer.promise;
    },

这些是我的 Laravel 后端中的路由:

Route::group(['jwt.auth', ['except' => ['authenticate']], 'prefix' => 'api', 'namespace' => 'Api'], function() {
    Route::post('authenticate', 'AuthenticateController@authenticate');
    Route::get('authenticate/user', 'AuthenticateController@getAuthenticatedUser');

    Route::post('users', 'UsersController@register');
    Route::post('users/reset', 'UsersController@resetContact');
    Route::put('users/{user}/reset', 'UsersController@resetPassword');
    Route::put('users/{user}', 'UsersController@update');
    Route::put('users/{user}/activate', 'UsersController@activate');
    Route::post('users/{user}/pic', 'UsersController@uploadPicture');
});

这是resetContact函数:

public function resetContact(Request $request)
    {
        $this->validate(
            $request,
            ['phone' => 'required|regex:/^[0-9]{8}$/']
        );

        $user = User::where('phone', $request->get('phone'))->firstOrFail();

        if ($user) {
            try {

                $this->sendValidationCode($user, 'reset');
            }
            catch (\Exception $e) {
                throw new ApiException($e->getMessage(), 500);
            }
        }

        return response()->json([
            'user' => $user,
        ]);
    }

不知道为什么我会收到这个 400 Bad request 错误。

【问题讨论】:

  • 您如何准确地测试 chrome 中的端点?邮递员?
  • 你能把那个 400 调用的响应粘贴到这里吗?...你可以在浏览器的开发者控制台的网络部分看到

标签: php angularjs api laravel


【解决方案1】:

使用 Laravel JWT 时,请确保您始终为 jwt.auth 下的所有路由发送令牌,否则您将收到错误 400 = Token not provided。在 ionic 中,请确保在每次调用 laravel 端点时都提供您的令牌以避免此错误。

【讨论】:

    猜你喜欢
    • 2017-12-14
    • 1970-01-01
    • 2017-04-10
    • 2017-08-28
    • 2017-01-08
    • 2017-03-29
    • 1970-01-01
    • 2016-04-07
    • 2021-01-07
    相关资源
    最近更新 更多