2017-02-10 92 views
0

我一直在尝试为web应用程序创建一个上传页面。为了将文件发送到服务器,我想使用AJAX,因为我已经在整个前端使用了AJAX GETs。Laravel 5.2 - 方法[ajax]不存在

我的问题是,当试图使用POST,在我将在稍后提供给您的情况下,我收到错误消息'Method [ajax] does not exist'。

我的路由(POST一个):

Route::group(['prefix' => 'organisatie', 'middleware' => ['web', 'auth', 'ajax'], 'namespace' => 'Organisatie'], function() 
{ 
    Route::group(['prefix' => '{organisatie}/documenten'], function() 
    { 
     Route::get('/', '[email protected]')->name('drive.index'); 
     Route::post('/upload', '[email protected]')->name('drive.upload'); 
    }); 
}); 

的路线将回落到organisatie/{organisatie_id}/documenten/upload

[email protected]

public function upload(Request $request) 
{ 
    $file = $request->file('file[]'); 

    return response()->json($file); 
} 

我的AJAX代码:

var formData = new FormData(); 

utility.foreach(upload.fileArray.array, function (file) { 
    formData.append('file[]', file); 
}); 

var ajax = { 
    url: '/organisatie/1/documenten/upload', 
    type: 'POST', 
    data: formData, 
    dataType: 'JSON', 
    processData: false, 
    success: function (data) { 
     console.log(data); 
    } 
}; 

$.ajax(ajax); 

注:

  • utility.foreach是我自己的foreach实现,它也只是 说。
  • upload.fileArray是我定义的数组包装器,它的工作原理是 。
  • 填充upload.fileArray工作正常,并经过测试。它的填充范围是input[type=file] (multiple)FileList

任何和所有的帮助表示赞赏。请问有没有不清楚的地方。

+0

您的ajax中间件是否正确设置? – Neat

+0

你的问题在于'$ .ajax(ajax);'因为你可能没有包含jQuery(correcly)。 http://api.jquery.com/jquery.ajax/ –

+0

尝试在页面加载后搜索页面源代码,找到您包含的jQuery库并将其粘贴到此处。例如我使用'' – Onix

回答

0

感谢您的帮助。 Neat的回答启发了我检查我的路线设置,并且似乎你仍然应该在邮路上使用?ajax=functionName。在我的情况:

路线:

Route::post('/', '[email protected]')->name('drive.upload.post'); 

AJAX:

var ajax = { 
    url: '/organisatie/1/documenten?ajax=upload', <--- '/upload' to '?ajax=upload' 
    type: 'POST', 
    data: formData, 
    dataType: 'JSON', 
    processData: false, 
    success: function (data) { 
     console.log(data); 
    } 
}; 

[email protected] -> [email protected]

出于某种原因,我找不到任何地方这个答案,所以我希望这可以帮助别人。

+0

这对某些人来说可能是显而易见的,但对我来说,花了很多时间才找出问题所在,所以希望这能帮助没有喝咖啡的人太久。 – Jarinus