Laravel 5.2 ajax 返回 500 内部服务器错误

Posted

技术标签:

【中文标题】Laravel 5.2 ajax 返回 500 内部服务器错误【英文标题】:Laravel 5.2 ajax returns 500 Internal Server Error 【发布时间】:2016-06-19 09:27:26 【问题描述】:

我的问题已在此处提出并得到解答: ajax post in laravel 5 return error 500 (Internal Server Error) 但问题对我来说仍然存在。

//master.blade.php
<!DOCTYPE html>
<html>
<head>
...
<meta name="csrf-token" content=" csrf_token() ">
...
</head>

并且create继承admin继承master

//create.blade.php
@extends('admin')

@section('head_scripts')
<script>
    $(function()
        $.ajaxSetup(
            headers: 
                'X-CSRF-TOKEN': $('[name="_token"]').val()
            
        );
        $('#country_id').change(function()
            $('#province_id').find('option').remove().end();
            $('#province_id').attr('disabled', true);
            $('#city_id').find('option').remove().end();
            $('#city_id').attr('disabled', true);
            var cid=$(this).val();
            var params="type":1, "country_id":cid;
            var paramsString=JSON.stringify(params);
            console.log(paramsString);
            $.ajax(
                url:'/company/ajax',
                type:'POST',
                data:json: paramsString,
                dataType:'json',
                success:function(result)
                    console.log(result);
                    $('#provinceSelectContainer').html(result);
                
            );
        );
    );

在控制器中:

public function ajax(string $params)
    if(!$params) return null;
    $params=json_decode($params);
    return ($params);

还有路线:

Route::group(['middleware' => ['auth:api']], function() 
    Route::post('/company/ajax', 'CompanyController@ajax');
);

有什么想法吗?

【问题讨论】:

能否请您提供相同的控制器方法? 我在问题中添加了控制器代码 【参考方案1】:

在 Laravel 5.2 中,中间件有 web、api 和 auth。 如果你想使用 ajax 发送数据,你将使用带有令牌的 api 中间件。 你可以看到这个参考:https://mattstauffer.co/blog/multiple-authentication-guard-drivers-including-api-in-laravel-5-2

Route::group(['middleware' => ['auth:api']], function ()         
    Route::post('api', someController@indexAjax');
);

【讨论】:

我把我的ajax路由放在这里了,但是错误依然存在

以上是关于Laravel 5.2 ajax 返回 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 忘记密码的模式弹出窗口显示 500 内部服务器错误,同时运行 ajax 功能

如何在laravel 5.2中控制多个ajax请求

Laravel:为啥我的 ajax 请求返回“500(内部服务器错误)”?

Laravel 5.2 ajax 更新问题

laravel 中的 Ajax 发布返回错误 500(内部服务器错误)

Laravel ajax 帖子返回 500 内部服务器错误