2014-11-25 75 views
1

我需要将请求负载中的数组传递给BACKBONE中的POST API调用。我尝试在save()中传递数组,但它不会像预期的那样。我从服务器得到的响应是“错误的请求,期望一个数组”。 阵列预计要为: [ “A”, “B”] 0: “一” 1: “b” 的 我的代码它将会为: {0: “一”,1: “b”} 0: “一” 1: “b” 的 这里是js代码我尝试:使用backbone.js .save()方法在请求有效负载中传递数组请求负载

var PolicyGroupMembers = Backbone.Model.extend({ 
    id1:"", 
    url: function(){ 
     var url1= "http://localhostIP:9292/api/policy_groups/" +this.id1 +"/members"; 
     return url1; 
    }, 
    // Before calling the save() function configure request 
    configRequest:function(options) {  
     this.id1 = options.id1; 
}); 
var systemGroup5 = new PolicyGroupMembers(); 
systemGroup5.configRequest({ 
    id1: "Ppj--v4UT1-NwrZ7PQkgOg" 
}); 
systemGroup5.save(["a","b"]); 

您的建议高度赞赏。

+0

类似的问题:http://stackoverflow.com/a/27051113/4116375 – knpsck 2014-11-25 10:05:57

回答

0

我怀疑你将不得不从骨干注明出处

if (key == null || typeof key === 'object') { 
     attrs = key; 
     options = val; 
    } 
    else { 
     (attrs = {})[key] = val; 
    } 

这样一个键值对被预期

+0

感谢您的建议。 我试过了,但数组仍然没有按预期传递。 请求负载我使用你的建议是: {0:[“a”,“b”]} 0:[“a”,“b”] – 2014-11-25 15:01:49

+0

我加了0,但这应该是你期待的关键,就像aArray,如果你没有通过正确的密钥,你会得到相同的错误 – Jerome 2014-11-25 16:15:18

0

要发送阵列预期这样做

systemGroup5.save({0:["a","b"]}); 

,我重写默认的contentType(application/json)为application/text。 下面的代码工作:

systemGroup5.save({ 
    data: ["a","b"], 
    contentType: 'application/text' 
});