php - AJAX 发送 GET 而不是 POST
问题描述
我正在使用 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')
}
});
}
路由.php
Route::any('/teamwork', 'TeamworkController@teamwork')->name('testPRoute');
当我将路由方法更改为发布时,它显示 405(不允许方法)
当我在控制器中使用 dd($request) 时,这就是我得到的 图像
那么,为什么我的 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({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
url:'teamwork' ,
type:'post',
data: { email : email},
method: 'POST',
dataType: 'json',
success:function(result){console.log(result);}
});
路线
Route::match(array('GET','POST'),'/teamwork', 'TeamworkController@teamwork')->name('testPRoute');
推荐阅读
- jquery - 使用 Razor Page Partial 创建动态 html 日期表
- javascript - 当formatter.format写入sum和discount值时,返回NaN?
- node.js - 如何在嵌套对象数组中渲染 reactJs?
- sas - Proc PMBR 与 SAS 中的 RD 树以识别相似性
- swift - 无法注册用户并在 Firebase 中查看他们的数据。包括认证和存储。使用三个视图控制器来完成这个任务
- go - 混合静态和动态链接
- mockito - 如何模拟单声道平面地图
- string - Ada - 将函数转换为过程
- java - JavaFX 调整窗口大小
- javascript - 将 geojson 文件中的坐标四舍五入以进行线图绘制