【发布时间】:2020-01-21 23:14:12
【问题描述】:
我将 Laravel 与 Ajax 一起使用。
我正在尝试对控制器进行 Ajax 调用。我在$request 上做了一个print_r,但我只有数组中的令牌,没有其他数据。
我尝试在 Ajax 调用中处理从未出现在请求中的数据对象。
查看:
@section('head')
<meta name="csrf-token" content="{{ csrf_token() }}" />
@endsection
<div>
<button type="submit" id="submit" class="btn btn-primary">Confirm</button>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
}
});
</script>
<script type="text/javascript" src="{{ URL::asset('js/test.js') }}"></script>
test.js
$( document ).ready(function()
{
$( "#submit" ).click(function()
{
$.ajax(
{
type:'POST',
url:'{{ route("test") }}',
data:{test: "test"},
success:function(data)
{
console.log(data.msg);
}
});
});
});
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\Http\Requests;
use Session;
class testController extends Controller
{
public function test(Request $request)
{
$data = $request->all();
print_r($data);
}
}
结果
Array ( [_token] => fKmSJpY0DRyCqzXyDPo2LwiJSD1wEiThVYn29lX7)
【问题讨论】:
-
这可能是您的测试路线设置为 GET 并且您正在发布。例如,请参阅此答案。 stackoverflow.com/a/53088426/3585500