我尝试在laravel 5.2中使用ajax向url发送带参数的参数但是当url的长度变得超过5000时,我面临Http在路由中找不到的错误 这是我的ajax代码:
$.ajax({
url: '/uploadQuestionMod5/',
type: 'GET',
data: {_token: CSRF_TOKEN , jcategory2:jcategory2 , jquestionText:jquestionText , jkind:jkind},
dataType: 'JSON',
success: function (data) {
}
});
我的控制器是:
$jcategory2 = $request['jcategory2'];
$jquestionText = $request['jquestionText'];
$jkind = $request['jkind'];
$category2 = json_decode($jcategory2);
$questionText = json_decode($jquestionText);
$kind = json_decode($jkind);
$now = date("Y-m-d H:i:s");
$insertquestion = DB::table('questionsInfo')->insert(
['userId' => $userId ,'categoryId' => $category2 ,'questionKind' => $kind ,'questionText' => $questionText , 'questionFileUrl' => null ,'date' => $now]
);
我试着在get方法中找到url大小的限制请帮助我谢谢:)
答案 0 :(得分:0)
快速简便的解决方案尝试使用AJAX POST而不是GET方法。
制作您的AJAX帖子,并在路径文件 shortestRoute = (routeResults: google.maps.DirectionsResult): google.maps.DirectionsResult => {
var shortestRoute: google.maps.DirectionsRoute = routeResults.routes[0];
var shortestLength = shortestRoute.legs[0].distance.value;
for (var i = 1; i < routeResults.routes.length; i++) {
if (routeResults.routes[i].legs[0].distance.value < shortestLength) {
shortestRoute = routeResults.routes[i];
shortestLength = routeResults.routes[i].legs[0].distance.value;
}
}
routeResults.routes = [shortestRoute];
return routeResults;
}
中更改您的路线(/ uploadQuestionMod5 /)
(/App/Http/routes.php)
注意:此路线将同时接受Route::match(['get', 'post'],'/uploadQuestionMod5', [
'uses'=>'YourController@method'
]);
和get
ajax请求。
如果您只发布ajax,那么您的路线如下:
post
此路由将接受来自ajax呼叫或任何来源(客户端)的Route::post('/uploadQuestionMod5', 'YourController@method');
请求发送
更新:令牌不匹配错误表示以下
1.您错过了通过AJAX帖子提交CSRF令牌字段
2.令牌可能已经改变但你没有刷新你的页面,只是一次又一次地发出ajax请求。
您似乎正在正确提交post
,因此请刷新页面并再次尝试拨打电话。