Javascript Backbonejs模型的.save()的PUT和POST请求
如何确认backbonejsJavascript Backbonejs模型的.save()的PUT和POST请求,javascript,backbone.js,model,Javascript,Backbone.js,Model,如何确认backbonejs.save()是否正在发送PUT请求??我检查了我的服务器端,它工作正常,服务器端没有问题。但是我的.save()不起作用 这是我的主干模型 define(['underscore','backbone'],function(_,Backbone) { var my_model = Backbone.Model.extend( { urlRoot: "http://localhost/back/server_file.php/num
.save()
是否正在发送PUT请求??我检查了我的服务器端,它工作正常,服务器端没有问题。但是我的.save()
不起作用
这是我的主干模型
define(['underscore','backbone'],function(_,Backbone)
{
var my_model = Backbone.Model.extend(
{
urlRoot: "http://localhost/back/server_file.php/number"
});
return my_model;
});
下面是我如何使用.save()
我想我的.save()
正在向服务器发送POST请求
更新
我想我能找到我的问题。我在这里描述这一点
我想做什么
我想将backbonejs模型中的2个参数发送到服务器端脚本(我使用的是PHP SLIM框架)。基于这两个参数,服务器端脚本在数据库中用静态参数更新记录的另一个字段(该记录的两个字段与这两个参数匹配)
BackboneJ提供了什么(如我所想)
Backbonejs有一个id为JSON格式的模型。Backbonejs向服务器端脚本发送PUT请求。服务器端脚本只是将数据(作为JSON格式,像一个包)转储(更新)到具有匹配id的数据库中。Serer端脚本不希望查看数据内部
我(从firebug的网络标签中)得到了我的PUT请求URL,类似于http://localhost/back/server_file.php/number/1 (这是id)
。另一方面,我想得到的URL就像http://localhost/back/server_file.php/number/1 (id第一个参数)/456(第二个参数)
如果我是对的,任何人都可以说我如何实施我的计划 您可以调试
Chrome Developer Tools
的网络
选项卡中发送的请求,也可以使用网络工具如Fiddler
查看所有请求
请参阅随附的“查看所使用的请求方法的位置”
这应该行得通
My_model.set(my_data);
My_model.save(null, {
wait : true,
url : "http://localhost/back/server_file.php/number/1/456",
success : function(response){
},
error : function(e){
}
});
请参见Chrome Developer Tools的
network
选项卡,或者您可以使用类似Fiddler
的网络工具查看所有请求。感谢@coding\u白痴的回复。我从网络面板得到的URL是问题出在哪里?这取决于服务器上是否已经存在该模型(即该模型具有id属性)。如果PUT已经存在,则由底层主干.sync
方法使用。如果服务器上不存在该模型(无id属性),则使用POST。谢谢@kandilaki的回复。你可以理解我的观点。事实上,我知道你的话,但我如何在我的代码中实现这一点?我认为你的问题并不完全是关于你最终想要什么。但是如果我没弄错的话,你会希望save
方法使用PUT而不是POST。如果是这样,那么您可以定义底层主干使用的请求类型。sync:model.save(data,{type:'PUT',success:function…})
My_model.set(my_data);
My_model.save(null, {
wait : true,
url : "http://localhost/back/server_file.php/number/1/456",
success : function(response){
},
error : function(e){
}
});