大家一直在努力解决这个问题,我正试图弄清楚这一点,但没有运气。
基本上我复制了另一个具有类似逻辑的工作项目,新的复制版本是唯一一个在ajax帖子上抛出这个405标题的版本。
控制台始终根据请求将我的POST转换为GET
GET http://app.local/en/pdf 405 (Method Not Allowed)
这就是我web.php
的样子
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]
],
function()
{
/** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
Route::get('/', 'MainController@home');
Route::post('pdf/', 'MainController@constructPDFOutput');
});
以及我的MainController看起来像什么
class MainController extends Controller
{
public function home()
{
return view('home');
}
public function constructPDFOutput(Request $request)
{
dd($request);
}
}
这是我的js ajax帖子看起来像
function getPDF() {
$('#error-well').hide();
var form = $('#generate-form');
var data = {
'_token': $('[name="_token"]').val(),
'current_lang': USERLANG,
}
console.log(`Posting Data to server...`);
console.log(data);
$.ajax({
dataType: 'native',
type: "POST",
url: form.attr('action'),
data: data,
xhrFields: {
responseType: 'blob'
},
success: function (blob) {
console.log("works!)
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus)
}
});
}
我的表格看起来像这样。
<form id="generate-form" method="POST" action="pdf">
{{ csrf_field() }}
</form>
非常感谢任何帮助。