【问题标题】:Ajax with Jquery in Laravel 5.0Laravel 5.0 中带有 Jquery 的 Ajax
【发布时间】:2016-11-08 23:06:19
【问题描述】:

我是 laravel 的新手,我有一个问题......

我有一个问题我正在尝试使用 jquery 来查找数据库中的信息显示它们:

我的表单名为“create.blade.php”

@extends('admin.usersprofile')

@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-10 col-md-offset-1">
                <div class="panel panel-default">
                    <div class="panel-heading">Nuevo Perfil de Usuario </div>

                    <div class="panel-body">
                        {!! Form::open(['route'=>'admin.profile.store','method'=>'POST','class'=>'']) !!}

                            <div class="form-group">
                                {!! Form::label('email','Correo electronico') !!}
                            </div>
                            <div class="form-group">
                                {!! Form::text('email',null,['class'=>'form-consult','placeholder'=>'Por favor ingrese su email']) !!}
                                <input type="button" class="btn btn-primary" name="consultar" id="consultar" value="Consultar">
                            </div>
                        <div class="form-group">
                            {!! Form::label('first_name','Genero') !!}
                            {!! Form::select('gender',[''=>'Seleccion un genero','M'=>'Masculino','F'=>'Femenino'],null,['class'=>'form-control']) !!}
                        </div>
                        <div class="form-group">
                            {!! Form::label('gender','Genero') !!}
                            {!! Form::select('gender',[''=>'Seleccion un genero','M'=>'Masculino','F'=>'Femenino'],null,['class'=>'form-control']) !!}
                        </div>
                            <div class="form-group">
                                {!! Form::label('twitter','Twitter') !!}
                                {!! Form::text('twitter',null,['class'=>'form-control','placeholder'=>'Por favor ingrese tu usuario twitter']) !!}
                            </div>
                            <div class="form-group">
                               {!! Form::label('website','Pagina Web o Blog') !!}
                               {!! Form::text('website',null,['class'=>'form-control','placeholder'=>'Por favor Ingresa la URL de tu sitio web']) !!}
                            </div>
                        <div class="form-group">
                            {!! Form::label('birthdate','Fecha de nacimiento') !!}
                            {!! Form::text('birthdate',null,['class'=>'form-control','placeholder'=>'Por favor Ingresa tu fecha de nacimiento']) !!}
                        </div>
                        <div class="form-group">
                            {!! Form::label('bio','Sobre mi') !!}
                            {!! Form::textarea('birthdate',null,['class'=>'form-control','placeholder'=>'Describe aqui algo sobre ti']) !!}
                        </div>
                            <button type="submit" class="btn btn-default">Guardar Perfil</button>
                        {!! Form::close() !!}

                    </div>

                </div>
            </div>
        </div>
    </div>
 @endsection

如果您可以在名为 Admin 的目录中看到此路线,我的路线名为“Profile”:

Route::group(['prefix' => 'admin', 'namespace' => '\Admin'],function(){

    Route::resource('profile','UsersProfileController');
    Route::post('test','UsersProfileController@consultar');

 });

这里的驱动叫做“UsersProfile Controllers”:

 public function consultar()
    {

        if(Request::ajax())
        {
            $json['nombre']="";
            $json['twitter']="";
            $correo=Input::get('email');
            $result= User::orderBy('first_name', 'ASC')
                ->leftJoin('user_profiles', 'users.id', '=', 'user_profiles.user_id')
                ->where('email', '=', $correo)
                ->get();
            foreach ($result as $res)
            {
                $json['nombre']=$res->full_name;
                $json['twitter']=$res->twitter;

            }
            return json_encode($json);

        }


    }

终于有了我的 Jquery:

 $(document).ready(function(){

    $("#consultar").click(function(){
        var correo=$("#email").val();
        var llave=$('input[name=_token]').val();

        $.ajax
        ({
            url:'test',
            type:'post',
            dataType:'json',
            data:{'email':correo,'_token': llave},


            success: function (data)
            {
                var nombre=data.nombre;
                var twitter=data.twitter;

                alert(nombre);
                alert(twitter);
            }


        });
    });
 });

问题是,当我运行时,这就是让我回来的原因:

RouteCollection.php 中的 MethodNotAllowedHttpException 在 RouteCollection->methodNotAllowed(array('GET', 'HEAD', 'PUT', 'PATCH', 'DELETE'))

现在,如果我检查我的路线,您会发现测试路线存在:

|   | POST | admin/test | Course\Http\Controllers\Admin\UsersProfileController@consultar |

如果他们意识到一切都很完美但不明白为什么它不起作用并给我这个消息 MethodNotAllowedHttpException

我希望我能显示正确的路径,我没有看到...谢谢。

【问题讨论】:

    标签: jquery ajax laravel


    【解决方案1】:

    看起来您的路线是 admin/test,但您的 AJAX 请求只是转到 test

    【讨论】:

    • 您好,感谢您的回答,我理解您的意思,但路由很好,因为文件“路由”和“测试”路由在 POST 生成时的前缀管理路径中:“@987654321 @" 如果我​​更改文件并将 AJAX admin/test 放置好:"Http://127.0.0.1/Course1.1/public/admin/profile/admin/test"
    • 很公平,但看起来我对您的问题的回答是正确的 - 只需要调整正确的路径。祝你好运!
    【解决方案2】:

    我的问题已经解决了……

    问题是AJAX中的路由一直以为:

    url: 'test'
    

    但是浏览器中的路径一直以为:

    http://127.0.0.1/Course%201.1/public/admin/profile/create

    "admin/profile/create" 
    

    我需要在我的 AJAX 中退出“配置文件”目录:

    url:'../test'
    

    就是这样

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2018-07-30
      • 2018-11-30
      • 1970-01-01
      • 2015-09-29
      • 2012-12-26
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多