json
  • laravel
  • parsley
  • 2016-12-16 8 views 0 likes 
    0

    パセリで登録フォームの電子メールとユーザー名をリモートで検証するように試みました。Laravel 5.3とParsleyのリモート検証

    入力:

    <input data-parsley-remote="{{ route('checkUserName') }}" data-parsley-remote-message="Der Username ist bereits vergeben!" data-parsley-remote-options='{ "type": "POST", "dataType": "jsonp", "data": {_token: CSRF_TOKEN, "UserName": "username" } }' 
    

    ルート:だからここ

    public/checkUserName?username=tester 405 (Method Not Allowed) 
    

    が私のコードです:私はオールウェイズメッセージを取得

    Route::post('/checkUserName', [ 
        'uses' => '[email protected]', 
        'as' => 'checkUserName' 
    ]); 
    

    UserControllerで:

    public function checkUserName(Request $request) 
    {   
        if(user::where('UserName','=',$request->input('UserName'))->exists()){ 
          return response::json('exists', 404); 
         }else{ 
          return response::json('not exists', 200); 
         } 
    } 
    

    答えて

    0

    エラーは、に登録されたルートを要求メソッドGETが処理できないため、Laravelによってスローされます。すべての

    まず、私はParsleyに慣れていないんだけど、あなたのコードを観察した後、私が見つけたことは、あなたがPOSTメソッドを使用してAJAXリクエストを送信するために、セットアップparsleyを持っていますが、データ型がjsonpに設定されている、ということです。この場合

    // Extracted from the question 
    data-parsley-remote-options='{ 
        "type": "POST", 
        "dataType": "jsonp", 
        "data": {_token: CSRF_TOKEN, "UserName": "username" } 
    }' 
    

    それが(スクリプトタグを使用して...)GET要求を送信し、したがって、あなたがPOSTとしてルートを登録したので、あなたのルートが見つからなかったので、jsonpPOSTメソッドを使用できません。

    リクエストメソッドPOSTの不適切なデータタイプ(jsonp)が原因で問題が発生しています。私は確信していますParsely のためPOST要求の代わりにGET要求を送信しています。

    だから、あなたが送信されているリクエストメソッドを見つけるには、ブラウザのインス​​ペクタでnetwork tabを確認することができますし、json可能性があり、Route::get()でルートを登録したり、他の何かにdataTypeを変更する必要がありますいずれかが、あなたは確認する必要があります使用可能なデータ型については、Parselyのドキュメントを参照してください。

    関連する問題