首页 > 解决方案 > 带有 Ajax 表单提交的 Laravel 5 `Internal Server Error` (500)

问题描述

ajax在项目中提交表单时遇到问题Laravel 5。我在浏览器控制台中收到以下错误:

 Failed to load resource: the server responded with a status of 500 (Internal Server Error)

我尝试了许多在其他帖子和网站中找到的建议,但都没有运气。这是我的阿贾克斯:

$.ajax({'url': './subscribe' 
    ,'data' : {
                "_token": $('meta[name="csrf-token"]').attr('content')
                ,"email" : $('#subscribe-email-input').val() 
            }
    ,'method': 'POST' 
    ,'success': function(data){
        console.log( data );
    }
    ,'error': function(data){
        console.log( 'oops', data );
    }
});

我的routes/web.php文件中定义了以下路线:

Route::post('subscribe', ['uses' => 'SubscribeController@validate', 'as' => 'subscribe.route']);

控制器非常简单:

class SubscribeController extends Controller
{   
    /*
    *   Get email address from DB if exists
    *
    *   @param string email, email address to search and return data from DB
    *
    *   @returns $email
    */
    public function validate ( Request $request )
    {
        $email = addslashes($request->email) ;

        if ( $email ) 
        {           
            $email = \App\Subscribe::where('email', '=', $email)->get();

            if ( $email->isEmpty() ) 
            {
                self::executeInsertQuery ( $email );
                return json_encode( array('body' => 'You have subscribed!') );
            } else {
                return json_encode( array('body' => 'You are already subscribed!') );
            }

        }       
    }
}

我会在其中发布代码,但考虑到路线似乎甚至没有到达方法self::executeInsertQuery(...),我认为它不相关。subscribevalidate

任何有关如何解决该问题的建议或意见将不胜感激!!先感谢您!

标签: phpajaxlaravel-5http-status-code-500

解决方案


问题是该validate函数是 Laravel 控制器中的预定义方法,因此您覆盖它会导致问题。尝试将其更改为其他内容。


推荐阅读