public class FileUploaderResultsTable extends Table
{
public FileUploaderResultsTable()
{
setCaption("Rendering table");
addStyleName("testTable2");
addContainerProperty("Name", String.class, null);
addContainerProperty("Mag", Float.class, null);
addItem(new Object[]{"Canopus", -0.72f}, 2);
addItem(new Object[]{"Arcturus", -0.04f}, 3);
addItem(new Object[]{"Alpha Centauri", -0.01f}, 4);
setPageLength(resultTable.size());
System.out.println("table created");
}
}
这是我的代码。 获得令牌不匹配错误.. !! 我尝试了以下两种方法..
$('#id').change(function(){
var a = $('#id_one').val();
var token = '<?php echo csrf_token(); ?>';
$.ajax({
url: "url",
type: 'POST',
data: {'id':a,'_token':token},
success: function(data)
{
// some code
}
});
})
任何人都可以帮忙吗??
答案 0 :(得分:0)
您可以使用刀片模板中的令牌,只需在脚本标记下的视图的刀片文件中声明会话令牌,如下所示:
<script> var token = '{{ Session::token() }}'; </script>
并在ajax中调用令牌,在你的代码中它将是这样的:
$('#id').change(function(){
var a = $('#id_one').val();
$.ajax({
url: "url",
type: 'POST',
data: {'id':a,'_token':token},
success: function(data)
{
// some code
}
});
})
答案 1 :(得分:0)
可能是因为令牌字段名称应为_token
而不是token
另外如果这个javascript代码在一个单独的javascript文件中,那么php函数将无效。
此外,如果您尝试发送的数据是表格,那么您可以执行此操作
$('#id').change(function(){
var data = $("#form").serialize() ;
$.ajax({
url: "url",
type: 'POST',
data: data,
success: function(data)
{
// some code
}
});
})
您的表单看起来像
<form id="form">
<input type='hidden' value='{{ csrf_token() }}' name='_token'>
<input type="text" name='id'>
</form>
答案 2 :(得分:0)
$.ajax({
url: someurl,
type: 'POST',
data : formData,
headers: {
"x-csrf-token": $("#token").data('id')
}
});
}
并在你的HTML中
<div id="token" data-id="{!! csrf_token() !!}"></div>