2016-11-15 52 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。但我猜想它会很好 –