javascript - Backbone.js开发中sava PUT的问题?
黄舟
黄舟 2017-04-10 17:13:44
[JavaScript讨论组]
var Model=Backbone.Model.extend({
    url:function(){return this.id ? "data/cart/" + this.id + ".php": "data/cart.php"}
});


view中的一段

this.model = new Model();
this.model.clear();
this.model.set(data);
this.model.save("", "", {
    success: function(e, resp, n) {
        $.indicator("hide");
    },
    error:function(resp){
        console.log("save error");//一直执行这里,他已经200状态了了
    }
});

问题为什么xhr都200了还会执行error里面的,这个不是表示访问地址失败?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
大家讲道理

Backbone.emulateHTTP = true;
Backbone.emulateJSON= true;

如果使用不支持Backbone默认REST/ HTTP方式的传统网络服务器,那么你可以选择开启Backbone.emulateHTTP。 设置这个选项为true,将伪造PUT, PATCH ,DELETE和HTTP POST请求,设定使用真实的方法在X-HTTP-方法- 覆盖头部。 如果emulateJSON开启,方法将被传递作为additional _method参数。

或者就是这样

if($_SERVER['REQUEST_METHOD']=="PUT"){
    //这里一定要传回一个值,不然就会直接执行error//之前我就是给空值了导致的问题
}
天蓬老师

看看xhr请求的response头的Content-Type是不是application/json

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号