我是Laravel的新人。我尝试在我的项目上创建一个ajax post函数。但我的以下代码不起作用。当我单击按钮时,它没有响应任何内容,但我在教程网站上创建了该功能。我在谷歌搜索但没有得到任何建议或适当的答案。拜托,有人帮我解决这个问题。任何建议将不胜感激。我英文不太好。所以,请不要介意。谢谢。哦,我忘记提到我使用的是Laravel 5.
<html>
<head>
<title>Ajax Example</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script>
function getMessage(){
$.ajax({
type:'POST',
url:'/getmsg',
data:'_token = <?php echo csrf_token() ?>',
success:function(data){
$("#msg").html(data.msg);
}
});
}
</script>
</head>
<body>
<div id = 'msg'>This message will be replaced using Ajax.
Click the button to replace the message.</div>
<?php
echo Form::button('Replace Message',['onClick'=>'getMessage()']);
?>
</body>
</html>
/* route file: */
Route::get('ajax',function(){
return view('message');
});
Route::post('/getmsg','AjaxController@index');
/* controller file: AjaxController.php */
class AjaxController extends Controller {
public function index(){
$msg = "This is a simple message.";
return response()->json(array('msg'=> $msg), 200);
}
}
答案 0 :(得分:2)
为了便于使用,您可以告诉jQuery始终传递当前的csrf标记。您可以通过两个步骤实现此目的:
在您的头脑中添加元标记
<meta name="csrf-token" content="{{ csrf_token() }}">
设置您的ajax
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
完成这些步骤后,无需在各个ajax请求中包含令牌。
注意:docs非常清楚地解释了这一点。
答案 1 :(得分:0)
请按照以下步骤操作:
<强> route.php 强>
Route::post('/getmsg','AjaxController@index');
<强> AjaxController.php 强>
class AjaxController extends Controller {
public function index(){
$msg = "This is a simple message.";
return response()->json([
'msg'=> $msg
], 200);
}
}
内部View
<html>
<head>
<title>Ajax Example</title>
<meta name="_token" content="{{ csrf_token() }}" />
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
</head>
<body>
<div id = 'msg'>This message will be replaced using Ajax.
Click the button to replace the message.</div>
{{ Form::button('Replace Message',['onClick'=>'getMessage()']) }}
<script>
function getMessage(){
var _token = $('meta[name="_token"]').attr('content');
$.ajax({
type:'POST',
url:'/getmsg',
data: {_token: _token},
success:function(data){
$("#msg").html(data.msg);
},
error: function(data){
console.log(data);
}
});
}
</script>
</body>
</html>
希望这有助于你