【问题标题】:Why my ajax request is giving 500 internal error in laravel为什么我的 ajax 请求在 laravel 中给出 500 内部错误
【发布时间】:2021-04-08 05:03:06
【问题描述】:

我正在尝试在输入新用户时更改用户名。我正在尝试使用 ajax,以便用户可以在该字段中提供正确的用户名。

表格

<form role="form">
     <input type="hidden" id="token" name="_token" value="{{csrf_token()}}">

        <div class="form-row">
             <div class="form-group col-md-6">
                  <label for="firstname">First Name</label>
                  <input type="text" class="form-control" id="firstname" placeholder="First Name">
             </div>
             <div class="form-group col-md-6">
                  <label for="lastname">Last Name</label>
                  <input type="text" class="form-control" id="lastname" placeholder="Last Name">
             </div>

             <div class="form-group col-md-6">
                  <label for="username">User Name</label> <label id="username_message" style="float: right;margin-right: 10px"></label>
                  <input type="text" class="form-control" id="username" placeholder="User Name">
             </div>
             <div class="form-group col-md-6">
                  <label for="email">Email</label>
                  <input type="email" class="form-control" id="email" placeholder="Email">
             </div>

             <div class="form-group col-md-6">
                  <label for="pass">Password</label>
                  <input type="password" class="form-control" id="pass" placeholder="Password">
             </div>


        </div>

        <div class="text-center">
             <button type="submit" name="submit" id="insert" class="btn btn-primary my-4">{{ __('Sign in') }}</button>
        </div>
</form>

ajax 请求

    $(document).ready(function (){
        $('#username').keyup(function (){
            var token = $('#token').val();
            var username = $('#username').val();

            if (username !== '') {

                $.ajax({
                    type: 'get',
                    url: '{{ route('verifyUserName') }}',
                    data: {
                        '_token': token,
                        'username': username,
                    },

                    success: function (response) {
                        console.log('ok');

                    }
                });
            }
        });
    });

路线

Route::get('verifyUserName', [\App\Http\Controllers\SuperAdminController::class, 'verifyUserName'])->name('verifyUserName');

控制器

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;


class SuperAdminController extends Controller
{
    private function verifyUserName(Request $request){
        if($request->ajax())
        {
            return response()->json(['code'=>'200']);
        }
    }
}

我也试过 post 方法,但结果是一样的。它给了我这个错误。

错误

jquery.min.js:2 GET http://localhost/Project/verifyUserName?_token=duyglp2z8DhpAJ8vnI4rd1Vrdjnqzq1zw1ythiZa&username=g 500 (Internal Server Error)     

jquery.min.js:2

我很困惑是什么问题。请帮我。提前致谢。

【问题讨论】:

  • 500错误表示laravel服务器端有问题。如果您尝试直接在浏览器中调用该路径,您会看到什么?

标签: jquery ajax laravel


【解决方案1】:
public function verifyUserName(Request $request){

    if($request->ajax())
    {
        return response()->json(['code'=>'200']);
    }
}

改用public function

【讨论】:

  • $users = User::where('user_name', "==", $username)->get();我想得到完全匹配。我已经尝试了上面的代码,但它没有给我完全匹配
【解决方案2】:

您可能将 ajax 数据提交到错误的路由类型,甚至是错误的 URL (404)。所以首先仔细检查你提交的路径。其次,检查路由是否接受“Post”或“Get”数据类型。因为通过 Get 方法提交 post 数据或反之亦然会导致 Laravel ajax 给出 500 Internal Server Error。

<input type="hidden" name="_token" value="{{ Session::token() }}">

var request = $.ajax({
    url: "script.php",
    method: "POST",
    data: {  _token : <?php Session::token() ?>},
    dataType: "html" 
});

返回的数据类型:

如果您返回布尔值并且您的 ajax 代码设置为 Json 或任何其他数据类型,那么您很可能会偶然发现内部服务器错误。尝试为所有对 JSON 的 ajax 响应设置数据类型。如果您使用 jQuery,则将 dataType 设置为 XML、JSON、脚本或 HTML,如下所示:

var request = $.ajax({
    url: "/action",
    method: "POST",
    data: { id : userId },
    dataType: "json"
});

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2019-06-05
    • 2019-06-26
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多