【发布时间】:2018-09-04 15:31:22
【问题描述】:
我对 Laravel 和 POST 请求有疑问。我的路由定义为 POST,AJAX 中使用的方法是 POST,但它一直在发送 GET 请求。如果我将路由更改为未定义的路由,那么它会发送 POST,但如果我将这个路由定义为 POST,它会发送 GET 请求。
AJAX:
$.ajax({
method: "POST",
url: "{{ url('admin/rentacar/save_availability_for_d') }}",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: $(form).serialize(),
dataType: "json",
success(result){
//
}
});
路线定义为:
Route::post('save_availability_for_d', [
'as' => 'save_availability_for_d',
'uses' => 'RentacarController@saveCarAdjustment'
]);
CSRF 令牌包含在元标记中:
<meta name="csrf-token" content="{{ csrf_token() }}">
这是我尝试发送 AJAX 请求时控制台中发生的情况:
XHR finished loading: GET "http://www.carsrental.me/public/me/admin/rentacar/save_availability_for_d".
如果我在末尾仅附加一个随机字符以瞄准不存在的路线,就会发生这种情况
XHR failed loading: POST "http://www.carsrental.me/public/admin/rentacar/save_availability_for_dd".
【问题讨论】:
-
你可能想看看 api 路由。制作网址
/api/admin/rentacar/save_availability_for_d。这不是解决方案,但它更清洁。 -
只有定义了api路由@SuperDJ才会这样,否则没有区别。