php - 此路由不支持 GET 方法。支持的方法:POST。Laravel 和 Ajax
问题描述
我试图了解如何将数据从 ajax 保存到 laravel 数据库。但我收到了这个错误:这条路线不支持 GET 方法。支持的方法:POST。
我希望你能帮助我一点。
网页.php
Route::post('postdataCord', 'HomeController@postdataCord')->middleware('auth');
控制器
public function postdataCord(Request $request)
{
$myId = auth()->id();
$long = $request->long;
$lat = $request->lat;
$data = User::find($request->get($myId));
$data->long = $long;
$data->lat = $lat;
$data->save();
}
脚本刀片
$(document).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
const successCallback = (position) => {
var long = position.coords.longitude;
var lat = position.coords.latitude;
console.log(long, lat);
var datastr = "long=" + long + "&lat=" + lat;
$.ajax({
type: "post",
url: "postdataCord",
data: datastr,
cache: false,
success: function(data){
},
error: function(jqXHR, status, err){
}
});
};
const errorCallback = (error) => {
console.log(error);
};
const watchId = navigator.geolocation.watchPosition(successCallback, errorCallback, {
enableHighAccuracy: true,
timeout: 60000,
maximumAge: 0
});
});
解决方案
更改您的路线类型以发布您需要这样的表格
<form id="id_of_form" onsubmit="ajaxUpdate()" class="form-horizontal col-lg- offset-2" role="form" enctype="multipart/form-data">
试试这个 ajax 请求
function ajaxUpdate() {
var inputs = $('#id_of_form').serializeArray();
$.ajax({
type:'POST',
url:'your/route/url',
data:inputs,
success:function(data){
if(data.status == 200) {
// code what happen if success
}
}
});
}
推荐阅读
- reactjs - React 道具中的索引签名
- javascript - 如何将动态选项(函数())从 JSON 传递给 Highcharts?
- azure-devops - 在 Azure DevOps 中从个人帐户更改为组织帐户
- javascript - vuejs 开发服务器编译器卡在 49%
- apache - 在 docker 容器中使用 Apache 将 Nginx 配置为反向代理
- javascript - jQuery 数据表 - 显示详细信息行在数据更新后不起作用
- node.js - nodejs中如何处理onLoad和onClick事件
- java - Java 应用程序的堆大小经常变化
- r - 如何在逻辑上减去行
- javascript - 如何在不初始化权重的情况下导入训练模型