Ajax没有在实时服务器Laravel上工作

时间:2016-07-29 18:44:59

标签: php ajax laravel-5.2

我的本​​地主机上有这个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上工作。任何人都有任何想法?我为此疯狂。

1 个答案:

答案 0 :(得分:0)

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

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