2017-09-30 94 views
1

我想使用jQuery驗證laravel和sentinel我需要返回false或true,但laravel不能做到這一點,而不是嘗試做與文本和JSON的響應。 控制器jQuery驗證和laravel

$email = $request->except('_token'); 
$user_email = Sentinel::findByCredentials($email); 
if($user_email!==null) 
    return response('This email is already in use!',200)->header('dataType','text'); 

    return response(collect(["check"=>'ok'])->toJson(),200)->header('dataType','json') 

即使響應報頭數據類型是text阿賈克斯接受此類似JSON,但如果我寫的數據類型:在AJAX的文字,我可以只接受文字和JSON我會看到這樣的文字和驗證仍然不工作

email: { 
    required: true, 
    email: true, 
    name: false, 
    remote: { 
    url: "/register/check", 
    type: "post", 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    }, 
    data: { 
     username: function() { 
     return $("input[name=email]").val(); 
     } 
    }, 
    // dataType:'text' 
    } 
} 

回答

0

固定爲增加dataFilter,但它仍然是一個壞的解決方案,我認爲

email: { 
      required: true, 
      email: true, 
      name: false, 
      remote: { 
       url: "/register/check", 
       type: "post", 
       headers: { 
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
       }, 
       data: { 
        username: function() { 
         return $("input[name=email]").val(); 
        } 
       }, 
       dataFilter: function(data){ 
        if(data=='{"check":"ok"}') 
         return JSON.parse(data); 
        return data; 
       }, 
       dataType: 'text' 
      } 
     }, 

我正在尋找像「我怎樣才能retur一些答案n在laravel控制器中爲false或true「或」在AJAX中接受爲響應多個數據類型「