【问题标题】:PHP Server Response - Backbone save not triggering success functionPHP服务器响应 - 骨干保存不触发成功功能
【发布时间】:2015-10-07 11:51:43
【问题描述】:

在调用 Backbone.Model.save() 后,我无法弄清楚如何创建正确的服务器响应。

将 myModel 视为已初始化的 Backbone Model 实例。

myModel.set('foo', '123');
myModel.save().then( function() {
    console.log('saved foo');
}, function() {
    console.log('error');
} );

控制台输出总是“错误”。 'foo' 的新值是在服务器上设置的,在重新加载应用程序后,代表 myModel.get('foo') 的视图将显示预期值('123')。 然而,promise 永远不会评估为成功函数。

由于我的服务器非常简单,我几乎可以肯定我在那里做错了 - 就是这样

if( $_SERVER['REQUEST_METHOD'] == "POST" ) {
    if( isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']) ) {
        if( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] == 'PUT' ) {
            // ... doing stuff to update data on server
            http_response_code(200);
            echo '';
        }
    }
}

这是收到的响应头

Content-Length 0
Content-Type   text/html; charset=UTF-8
Server         PhpStorm 9.0.1
X-Powered-By   PHP/5.6.12

我非常感谢我在这里缺少的每一个提示。

【问题讨论】:

  • 能否尝试将内容类型设置为 application/json 或 xml?

标签: php backbone.js header server response


【解决方案1】:

header() 用于设置 HTTP-headers,

所以添加这行代码

header("Content-type: application/json"); 
$rtn = array("status", "200");
http_response_code(200);
echo json_encode($rtn);

【讨论】:

  • 完美。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 2014-02-26
相关资源
最近更新 更多