【发布时间】:2018-11-23 00:53:08
【问题描述】:
我正在使用 Laravel 并尝试使用 AJAX 将变量发送到控制器,但请求正在更改为 GET!
AJAX
function fetchTasks(email) {
$.ajax({
method: 'POST',
dataType: 'json',
url: '/teamwork',
data: {_method: 'POST', email : email},
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
}
Routes.php
Route::any('/teamwork', 'TeamworkController@teamwork')->name('testPRoute');
当我将路由方法更改为发布时,它显示 405(不允许方法)
当我 dd($request) 在我的控制器中时,这就是我得到的 image
那么,为什么我的 Ajax 请求不起作用?
已编辑: 我已将代码修改为以下
function fetchTasks(email) {
console.log(email);
var token = "{{ csrf_token() }}";
$.ajax({
method: "POST",
url: "teamwork",
data: {
_token:token,
'email': email
},
contentType: "application/json",
success: function(data) {
console.log(data);
},
error: function(err) {
console.log(err);
},
complete: function () {
window.location.href = '{{route("testTRoute")}}';
}
});
}
它仍在发送一个空的 GET 请求。控制台输出如下:
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
【问题讨论】:
-
怎么叫ajax?任何按钮按下或菜单链接(标签)?我怀疑您使用带有链接的ajax。如果是这样,它将无法正常工作。
-
我首先验证数据库中是否存在用户电子邮件。如果是这样,我用“fetchtasks();”调用该函数。我认为它正在工作,因为正如您在图像中看到的那样,它将路线更改为“/teamwork”