php – always_populate_raw_post_data – 无法从Backbone创建访问请求有效负载

前端之家收集整理的这篇文章主要介绍了php – always_populate_raw_post_data – 无法从Backbone创建访问请求有效负载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Backbone.js将一个集合保存到我的数据库,并在我的服务器上运行SLIM PHP框架.

这是我的收藏:

var newUser = this.collection.create(
    formData,{
        wait: true,success: $.proxy(function() {
            this.collection.currentUser = newUser;
            App.Router.navigate('',{ trigger: true });
        },this)
    }
);

这是我的SLIM路线:

$api->post('/users',function() use($api,$db) {

    $request = $api->request()->post();

    $api->response()->header('Content-Type','application/json');

    $result = $db->users()->insert($user);

    if( $result ) {
        echo json_encode(array(
            'id' => $result['id']
        ));
    }
    else {
        echo json_encode(array(
            'status' => false,'message' => 'error_creating_user'
        ));
    }

});

$api->run();

在我的集合上调用create()时,我在服务器的响应中收到了弃用警告:

不推荐自动填充$HTTP_RAW_POST_DATA,将来的版本将删除它.要避免此警告,请在PHP.ini中将’always_populate_raw_post_data’设置为’-1′,然后使用PHP://输入流.在第0行的未知中

我已按照这些说明操作并完成以下操作:

我在我的路线之前添加了这个:

ini_set('always_populate_raw_post_data','-1');

从我的POST路径中我尝试接收请求有效负载,如下所示:

$request = file_get_contents('PHP://input');

在对我的代码进行此更改后,我得到的响应保持不变…

编辑

即使空回调,也会发生错误….

$api->post('/users',$db) {

    // nothing

});
PHP 5.6中存在一个错误. always_populate_raw_post_datais的默认值为0.即使您的代码不使用$HTTP_RAW_POST_DATA,这也会导致PHP发出警告.有人声称在输出一些文本后调用header()时会发生这种情况.尝试使用ini_set()没有帮助.

您必须直接在PHP.ini中更改配置.

always_populate_raw_post_data = -1

PHP内部相关的discussion.

猜你在找的PHP相关文章