我使用text
Ajax请求从<script>
文件中的.blade.php
标记向控制器发送名为POST
的值。如果我不写$.post
函数,那么它会在控制台中输出文本值。但是当我写这个Ajax请求发送数据到控制器值时不通过。简而言之,我想将值从View传递给Controller,我无法做到这一点。我已经尝试了所有YouTube教程和之前的Stack Overflow问题。我也参观了拉拉采斯,但问题没有解决。难道我做错了什么?请帮忙。谢谢。
shopReq.blade.php:
{{csrf_field()}}
<script>
$(document).ready(function(){
$('.ourItem').click(function(event){
var text=$(this).text();
$('#addItem').val(text);
console.log(text);
$.post('shopReq',{'text':text,'_token':$('input[name=_token]').val()}),function(data){
console.log(data);
});
});
});
</script>
Web.php:
Route::post('shopReq','UserController@special');
控制器:
class UserController extends Controller
{
public function special(Request $request){
$articles = DB::table('shoppingtrips')->get();
echo"DONE";
// return $request->all();
}
}
答案 0 :(得分:1)
尝试以下ajax
语法:
$.ajax({
url: 'your route',
method: 'post',
data: {
key1: value1
// you can send more such key value pair here
},
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response){
}
});
请勿忘记添加CSRF-TOKEN
,否则您将收到邮件请求所需的500(内部服务器错误)。
答案 1 :(得分:1)
layout.blade.php
文件中将此添加到您的头标记:
<script type="text/javascript">
// laravel ajax helpers
var APP_URL ={!! json_encode(url('/')) !!};
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': '{{csrf_token()}}'
}
});
</script>
然后,在您看来,这样做:
<script>
$(document).ready(function(){
$('.ourItem').click(function(event){
var text=$(this).text();
$('#addItem').val(text);
console.log(text);
$.ajax({
url: APP_URL+'/shopReq',
method: 'post',
data: {
text: text
},
success: function(response){
console.log(response);
}
});
});
});
</script>
在您的控制器中,执行以下操作:
class UserController extends Controller
{
public function special(Request $request){
$text = $request->input('text');
// do stuff with $text
}
}