2016-11-15 37 views
0

我的問題是我有我的網頁提交然而,我想要做的是讓它提交回來,並顯示任何錯誤,可能來自適當的表單字段下的驗證。截至目前,我的控制檯也出現這個錯誤。Laravel應用程序與ajax json返回問題錯誤

如果您願意查看一小段代碼,請查看是否有任何建議改變的代碼。

"NetworkError: 405 Method Not Allowed - http://myapp.app/createorderfromform" 
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 

var err = JSON.parse(xhr.responseText); 



$("#pageOneSubmission").click(function(event) { 
    event.preventDefault(); 
    var email = $("input[name=email]").val(); 
    var addons = []; 
    $('.addon-checkbox:checked').each(function() { 
     addons.push($(this).val()) 
    }); 

    $.ajax({ 
     type: "POST", 
     url: '{{action('[email protected]') }}', 
     data: 
      { 
       email: email, 
       addons: addons 
      }, 
     dataType: JSON, 
     success: function(data) { 
      if (!data.success) { 
       console.log("Errors"); 
      } else { 
       console.log("No Errors"); 
       $("#user-created-confirmation").html(data); 
      } 
     }, 
     error: function(xhr, status, error) { 
      var err = JSON.parse(xhr.responseText); 
      $.each(err, function(key, value) { 
       $('input [name=key]').next().append("<p>Test</p>"); 
      }); 
     } 
    }, function(){ 
     setTimeout(function() { 

     }) 
    }); 
}); 

OrderProcessController

<?php 

namespace App\Http\Controllers; 

use App\Order; 
use Illuminate\Http\Request; 
use Sentinel; 


class OrderProcessController extends JoshController 
{ 
    /* 
    * Create User After they complete the first part of the form. 
    * 
    */ 
    public function createUserAndOrder(Request $request) 
    { 
     $validation = $this->validate($request, [ 
      'email' => 'required|confirmed|unique:users,email', 
     ]); 

     $credentials = [ 
      'email' => $request->input('email'), 
      'password' => $request->input('password'), 
     ]; 

     $user = Sentinel::registerAndActivate($credentials); 

     $user->role()->attach(5); 

     return response()->json([ 
      'success' => true, 
      'errors' => null 
     ]); 
    } 
} 

UPDATE:

我已經固定不過我的路線問題,我試圖找出如何保持它的形式移動到下一個頁面嚮導中是否存在與正在傳遞的表單字段之一的驗證錯誤。因爲當用戶來到表單的第一頁並且沒有填寫任何應該返回的錯誤字段時。所以我試圖找出驗證如何將錯誤傳遞迴ajax請求,以便它可以在輸入字段旁邊顯示相應的錯誤。

回答

3

405 Method Not Allowed異常表示您請求的HTTP方法不存在路由。

確保您的路線是post請求。

+0

該問題的部分的好答案,但我有一個額外的問題。請參閱我更新的帖子。 – user3732216

+1

您所要求的與您最初詢問的內容完全不同。請問一個新的問題。 –

1

確保您在ajax url中使用的路由已經存在,並且其類型爲post。 你可以確保埠運行

php artisan route:list 
+0

問題部分的好答案,但我有一個額外的問題。請參閱我更新的帖子。 – user3732216

+0

因此,如果您運行以下操作,您可以檢查默認安裝的登錄和註冊視圖: –

+0

php artisan make:auth 您將在資源/權限 中發現它們正確使用的內容,但沒有使用ajax。但我猜想它會很好 –