【问题标题】:Ajax not working on live server LaravelAjax 无法在实时服务器 Laravel 上运行
【发布时间】:2016-12-04 13:44:40
【问题描述】:

我的本​​地主机上有这个 ajax 请求。但是当我上传到我的共享主机时,他们会抛出 500 内部服务器错误。我正在传递 _token。

    var token = $('meta[name="csrf-token"]').attr('content');
    $('.enviarForm').on('click',function(){
        var data =  { 
                'email': $('#email').val(), 
                'phone': $('#phone').val(),
                'consulta':$('#consulta').val(),
                '_token':token,
                "_method": 'post'
            };
            console.log(data);
        $('.enviarForm').html("Enviando...<img src='{{asset('img/loading-form.gif')}}'' alt=''>");  
        $.ajax({
            method: 'POST',         
            url:'http://har***ine.com/public/testPost',
            data:data,
            success: function(msg) {
                if(msg['message'] == 'success'){
                    $('.enviarForm').html("Enviado");
                    $.notify({
                        // options
                        message: 'Tu consulta fue enviada. Dentro de 24hs te responderemos a tu email o teléfono. Muchas gracias.' 
                    },{
                        // settings
                        type: 'success',
                        placement: {
                            from: 'bottom',
                            align: 'center'
                        }
                    });
                }else{
                    $('.enviarForm').html("Enviar");
                    $.notify({
                        // options
                        message: 'Error: Por favor complete todos los campos e intente nuevamente.' 
                    },{
                        // settings
                        type: 'danger',
                        placement: {
                            from: 'bottom',
                            align: 'center'
                        }
                    });
                }
            }       
        });
    });

我的测试控制器是这样的:

     public function testPost(Request $request){
         return response()->json(['message'] => 'success'); }

我的路线文件是这样的:

Route::post('/testPost',[

    'uses' => 'ContactController@testPost',

    'as' => 'contacto.testPost',

]);

我尝试了很多东西,但我没有成功。 csrf 令牌它的 okey,.htaccess 没问题,最重要的是在 localhost 上工作。有人知道吗?这让我发疯了。

【问题讨论】:

  • 500错误首先要做的是读取日志
  • @u_mulder 谢谢你解决了我的问题:)。

标签: php ajax laravel-5.2


【解决方案1】:

您可能需要将令牌作为标头值而不是正文发送。首先,从数据中删除 '_token':token。那么:

$.ajax({
headers: {
            'X-CSRF-TOKEN' : token
        },
            method: 'POST',         
            url:'http://har***ine.com/public/testPost',
            data:data,
....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2014-03-27
    • 2020-05-16
    • 2017-08-11
    • 2019-09-11
    • 2015-11-03
    相关资源
    最近更新 更多