Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-CSRF令牌不能与ajax调用一起使用,导致500内部服务器错误 问题_Php_Ajax_Laravel - Fatal编程技术网

Php Laravel-CSRF令牌不能与ajax调用一起使用,导致500内部服务器错误 问题

Php Laravel-CSRF令牌不能与ajax调用一起使用,导致500内部服务器错误 问题,php,ajax,laravel,Php,Ajax,Laravel,我有一个简单的搜索字段,它是一个表单。提交时,以下代码负责获得结果。代码给了我一个内部服务器错误。这导致我没有在控制器中输入PHP搜索函数。我认为这与我的代币设置有关。它们可以处理其他ajax调用,尽管是由其他人编写的 注意:此代码用于在我的控制台中打印搜索查询结果。由于更改(通过在主刀片中实现令牌脚本),它停止了这样做。因此,我的工作流程在发布ajax调用时陷入了困境。您能找到导致此错误再次出现或出现的原因吗?提前谢谢 代码 剧本 路线 主刀片中的令牌脚本(与其他ajax调用一起使用) 搜索功

我有一个简单的搜索字段,它是一个表单。提交时,以下代码负责获得结果。代码给了我一个内部服务器错误。这导致我没有在控制器中输入PHP搜索函数。我认为这与我的代币设置有关。它们可以处理其他ajax调用,尽管是由其他人编写的

注意:此代码用于在我的控制台中打印搜索查询结果。由于更改(通过在主刀片中实现令牌脚本),它停止了这样做。因此,我的工作流程在发布ajax调用时陷入了困境。您能找到导致此错误再次出现或出现的原因吗?提前谢谢

代码 剧本 路线 主刀片中的令牌脚本(与其他ajax调用一起使用) 搜索功能
通过遵循此[教程]()获得了一个结果。不确定最初的问题是什么

通过遵循此[教程]()获得了一个结果。不确定最初的问题是什么

您是否检查了Laravel日志和/或HTPP服务器日志以了解错误所在?感谢您写了一个明确的问题!尝试以下几点:1)尝试将
X-CSRF-Token
更改为
X-CSRF-Token
,因为它可能区分大小写(我不记得了)。2) 在AJAX调用中作为数据传递的对象中,尝试将令牌作为
\u token
传递。3) 确保AJAX预过滤器用
$(document.ready(function(){…})包装
所以标记是在元素可用后设置的。请在search()方法中对foreach循环代码进行注释,然后调用Ajax。我希望你会得到一些新的输出。谢谢评论!杰伊:因为我的呼叫无法进入函数,所以我没有得到输出。杰里米:我试过你的方法。好像没帮我修好,对不起。我对如何做第二个有点困惑。我已经能够将令牌转换成字符串,我可以将它添加到我的数据属性中。我不知道该怎么办。博格丹:还没有检查服务器本身,就可以了!我已经从本教程重新开始:。代码没有太大变化,因此不会影响以下内容:教程允许我执行ajax请求,但我的代码在$projects=$query->get()处崩溃;现在,导致呼叫失败。我收到的新错误是
Uncaught SyntaxError:Unexpected token您是否检查了Laravel日志和/或HTPP服务器日志以查看错误是什么?感谢您编写了一个清晰的问题!尝试以下几点:1)尝试将
X-CSRF-Token
更改为
X-CSRF-Token
,因为它可能区分大小写(我不记得了)。2) 在AJAX调用中作为数据传递的对象中,尝试将令牌作为
\u token
传递。3) 确保AJAX预过滤器用
$(document.ready(function(){…})包装
所以标记是在元素可用后设置的。请在search()方法中对foreach循环代码进行注释,然后调用Ajax。我希望你会得到一些新的输出。谢谢评论!杰伊:因为我的呼叫无法进入函数,所以我没有得到输出。杰里米:我试过你的方法。好像没帮我修好,对不起。我对如何做第二个有点困惑。我已经能够将令牌转换成字符串,我可以将它添加到我的数据属性中。我不知道该怎么办。博格丹:还没有检查服务器本身,就可以了!我已经从本教程重新开始:。代码没有太大变化,因此不会影响以下内容:教程允许我执行ajax请求,但我的代码在$projects=$query->get()处崩溃;现在,导致呼叫失败。我收到的新错误是
Uncaught SyntaxError:Unexpected token
$("#searchonfrontpage").submit(function(e){
e.preventDefault();

var whattosearch = $("#searchFRONT").val();
console.log("searching... " + whattosearch + ".");

  $.ajax({
    type: "POST",
    url: "/", 
    data: { whattosearch: whattosearch }, 
    success : function(data){
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus, errorThrown);
    }
  });
});
//just in case
Route::filter('csrf', function() {
    $token = Request::ajax() ? Request::header('X-CSRF-Token') :     Input::get('_token');
 if (Session::token() != $token)
    throw new Illuminate\Session\TokenMismatchException;
});

//frontpage routes
Route::get('/','frontpageController@frontpage');
Route::post('/', 'frontpageController@search');
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
public function search() {

    //not making it here because of the 500 server error with post
    print_r("call made");

    $q = $_POST["whattosearch"];
    print_r($q);

    $searchTerms = explode(' ', $q);
    $query = DB::table('projects');

    foreach($searchTerms as $term){
        $query->join('users', 'users.id', '=', 'projects.user_id')
              ->where('title', 'LIKE', '%'. $term .'%')
              ->orWhere('tags', 'LIKE', '%'. $term .'%')
              ->orWhere('body', 'LIKE', '%'. $term .'%')
              ->orWhere('username', 'LIKE', '%'. $term .'%')
              ->orderBy('created_at', 'desc');
    }

    $projects = $query->get();

    print_r($projects); //used to be able to see these results, but not anymore

    //return data view here (also gives a 500 error when I used to be able to get projects)

    //return View::make( 'viewfile' )->with( 'data', $projects );
    //return View::make('projects', compact('projects'));
}