2017-02-10 14 views
0

私はウェブアプリケーションのアップロードページを作成しようとしています。サーバーにファイルを送るために、私はAJAXを使いたいと思っています。フロントエンド全体にAJAX GETを使っています。Laravel 5.2 - 方法[ajax]が存在しません

私の問題は、POSTを使用しようとすると、私はあなたに一瞬であなたを提供するだろうという状況の中で、「方法[ajax]が存在しません」というエラーメッセージが表示されるということです。

マイルート(POST 1):

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

おそらくjQuery(correcly)が含まれていない可能性があるため、問題は '$ .ajax(ajax);にあります。 http://api.jquery.com/jquery.ajax/ –

+0

ページが読み込まれた後でページソースを検索し、jQueryライブラリを検索してここに貼り付けてください。たとえば、私は '' – Onix

答えて

0

ありがとうございました。 Neatの答えは私のRoute設定を確認するよう促し、POSTルートにはまだ?ajax=functionNameを使用する必要があるようです。私の場合:私はどこでもこの答えを見つけることができませんでしたので、私はこれが誰かの役に立てば幸い何らかの理由で[email protected] -> [email protected]

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); 
    } 
}; 

ルート:

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

AJAX 。

+0

これは明らかなように思えるかもしれませんが、問題は何かを理解するまでには時間がかかりましたので、コーヒーを飲みすぎた人を助けることができれば幸いです。 – Jarinus

関連する問題