【发布时间】:2017-06-23 12:35:16
【问题描述】:
index.html
<form id="my-form">
<select id="my-select">
<option value="1">Tom</option>
<option value="2">Jerry</option>
</select>
<input type="submit" value="send data!">
</form>
Controller.php
public function getValue(Request $request)
{
return User::find($request->input('select_id'));
}
ajax.js
$(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var showUser = $('#show-user');
$('#my-form').on('submit', function () {
var select_id = $('#my-select').val();
$.ajax({
method: "POST",
url: "ajax",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
"select_id": select_id
},
error: function (data) {
//something went wrong with the request
alert("Error");
},
success: function (data) {
inner = "";
data.forEach(function (el, i, array) {
inner += "<div>" + el.name + "</div>";
});
showUser.html(inner);
}
});
event.preventDefault();
});
});
web.php
Route::post('ajax','Controller@getValue');
更新:
@Mahdi Youseftabar -> 谢谢,根据文档,我应该使用 input() 来获取请求!
问题一:错误:500 (TokenMismatchException);
我做了什么?
将元数据添加到:
<meta name="csrf-token" content="{{ csrf_token() }}">
我设置了标题:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
...
headers: {
'X-Auth-Token' : token
},
...
});
我需要做什么?
- 从控制器获取 ajax 请求中发送的 id [已解决]
- 通过 ajax 请求验证令牌** 错误 505(问题 1) [已解决]
- 从控制器返回是空的 [已解决]
-
将用户输出到
<div class="showUser"></div>[已解决]
我的项目的 Github 文档: (多对多关系 - Laravel 5.3,Ajax) https://github.com/39ro/StudentSchoolProject
【问题讨论】:
-
那么,问题出在哪里?有什么不工作吗?您是否在某处遇到错误?
-
我认为在 ajax 请求中你已经添加了这样的值:
data: { userid: userid } -
你试过我的方法了吗/?
-
是的,但我仍然收到 500 错误。我更新了 ajax.js 和 index.html 代码来解释我目前想要实现的目标!
-
您是否尝试过检查您的 VerifyCsrfToken.php 文件?我建议在答案中进行类似的尝试,如下所示:laracasts.com/discuss/channels/general-discussion/…