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里面的,这个不是表示访问地址失败?
看看xhr请求的response
头的Content-Type
是不是application/json
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//之前我就是给空值了导致的问题
}