【发布时间】:2013-12-25 00:06:51
【问题描述】:
我是 Stackoverflow 和 Laravel 4 的新手, 我正在尝试通过 jquery ajax 提交表单。我 serializeArray() 表单并使用 json 提交它。 在 laravel 中,在我检查提交的 csrf 令牌的路由中,转到我的控制器以获取流程输入。 当 _token 输入与 serializeArray() 一样位于数组中时,csrf 检查不起作用。 我必须获取 _token 值并提交作为单独的 ajax 数据。我想知道是否有办法告诉 csrf 过滤器在哪里运行以检查输入数组中的 hte 字段 _token 并使用它? 这是我的代码:
routes.php
Route::post('searchAjax', array('before' => 'csrf',
'uses' => 'SearchController@searchAjax'));
这是我不希望它读取数组 form[0]['_token] 但我不知道如何告诉它这样做的地方。
index.js
var form = $('#search').serializeArray();
var token = $('#search > input[name="_token"]').val();
$.ajax({
type: 'post',
url: 'searchAjax',
dataType: 'json',
data: { _token: token, form: form },
success: function(data) {
for(var key in data)
{
//alert(key)
}
//alert(data.message);
}
});
我想摆脱 ajax 调用中的 { _token: token, form: form } 并且只拥有一个包含 _token 的数组的“form”。 这是html:
<form id="search" class="form-horizontal" accept-charset="UTF-8" action="http://testing:998/search" method="POST">
<input type="hidden" value="6GBbv9LmnOdL8UcOsm8DDJ4Bfi6eGcQRlC9SPdL4" name="_token">
<div class="control-group">
<label class="control-label" for="title">Book Titles</label>
<div class="controls">
<input id="title" class="input" type="text" value="click to search book titles" name="title">
</div>
</div>
<div class="control-group">
<div class="control-group">
<div class="control-group">
</form>
提前谢谢你。 :)
【问题讨论】:
-
data: { _token: token, form: form }有什么问题,你想要什么? -
没有问题,但是表单已经包含_token。我只是想让我的代码更简单,看看是否有办法访问 Route:: 以在之前执行一个函数,然后链接到一个控制器。
-
你的问题很混乱,能改一下吗?
-
我也有同样的问题