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

时间:2016-03-05 16:14:07

标签: php ajax laravel-5 internal-server-error

我的问题已在此处提出并回答: 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>

创建继承master

的继承admin
//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 个答案:

答案 0 :(得分:0)

在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');
});