我是 Laravel 新手。我正在尝试一个简单的 Ajax 请求,但收到以下错误消息。这是什么意思?
{message: "", exception: "Symfony\Component\HttpKernel\Exception\HttpException",…} exception: "Symfony\Component\HttpKernel\Exception\HttpException" file: "C:\MAMP\htdocs\project_21_my_laravel_website\vendor\laravel\framework\src\Illuminate\Foundation\Exceptions\Handler.php" line: 204 message: ""
index.blade.php
<div class="myTestLink">my Test Link</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".myTestLink").click(function(){
$.ajax({
method: 'post',
dataType: 'json',
url: 'insert-ajax',
success: function (data)
{
alert(data);
}
});
});
});
</script>
web.php
Route::post('/insert-ajax', 'myTestController@testingsomething');
myTestController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class myTestController extends Controller
{
public function testingsomething()
{
return "hello";
}
}
最佳答案
您必须使用 CSRF
token 。
请在blade文件的head标签内添加meta标签。
<meta name="csrf-token" content="{{ csrf_token() }}">
然后像这样更改你的 JavaScript。
$(document).ready(function () {
$(".myTestLink").click(function(){
$.ajax({
method: 'post',
dataType: 'json',
url: 'insert-ajax',
beforeSend: function (request) {
return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
},
success: function (data)
{
console.log(data)
}
});
});
}
关于php - 如何修复 Laravel HttpKernel\Exception 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55941281/