我的问题已在此处提出并回答:
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');
});
有什么想法吗?
答案 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');
});