2017-09-10 8 views
2

AJAXを使用してファイルをアップロードするためにJQuery用の "Bootstrap File-input"プラグインを使用しようとしています。プラグインは、次のように「エラー」と呼ばれるJSONのキーに受け取っされているエラーメッセージを見込ん:JSONエラーメッセージをLaravelの "error"オブジェクトとして返します

{error: 'You are not allowed to upload such a file.'} 

だから私は、「ハンドラ」クラスの「レンダリング」メソッドで例外処理のための私自身のコードを書いた:

public function render($request, Exception $exception){ 

    $err_code = $this->getExceptionHTTPStatusCode($exception); 

    $data = [ 
     "error" => "Internal Server error.", 
     "exception" => $exception->getMessage() 
    ]; 

    if ($exception instanceof ValidationException){ 
     $data['error'] = "Wrong input data"; 
     $data['error_list'] = $exception->getResponse()-> getOriginalContent(); 
     $err_code = 422; 
    } 

    if ($request->expectsJson()) { 

     return response()->json(
      $data, 
      $err_code 
     ); 

    } 

    return parent::render($request, $exception); 
} 

しかし、その代わりに予想されるようにデータが供給するのではなく、「responseText」キー値で、配列の内容を置きます(そしてまた、それは文字列としてエスケープされます):

{"readyState":4,"responseText":"{\"error\":\"Wrong input data\",\"exception\":\"The given data failed to pass validation.\",\"error_list\":{\"logotipo\":[\"Logotipo field is mandatory\"]}}","responseJSON":{"error":"Wrong input data","exception":"The given data failed to pass validation.","error_list":{"logotipo":["Logotipo field is mandatory."]}},"status":422,"statusText":"Unprocessable Entity"} 

私は別のものを置くことができる場合、私は思ったんだけどキーと値は "responseText"と同じレベルの "JSONResponse"と同じように(私はどのように動作するのかはわかりませんが、Laravelのバリデータによって追加されているように見えますが)、StringではなくJSONオブジェクトです。私はJQueryで文字列を解析できることを知っていますが、 "Bootstrap File Input"プラグインはJSONとして期待しており、コードを変更することはできません。

また、Vue.jsリソースプラグインを使用しようとしましたが、応答が別の方法で読み込まれるように見えるので、同じ「コンテンツ」を持つ「body」と「bodyText」というオブジェクトがあります。なぜ私はエスケープされた文字列とJSONとして1つ、応答が重複しているのか分かりません。

ありがとうございます。

答えて

2

私が間違っていない場合は、ajaxを使用してファイル入力でフォームを送信しようとしています。このために、私はあなたのためにこれらのリンクを共有することができ、これらの人はすでに同じ問題を解決しています。

Laravel 5 Ajax File/Image Upload

AJAX file upload in laravel

Laravel 5 Ajax File/Image Upload

これはあなたにいくつかの助けを提供することができますように。

関連する問題