Ada*_*ner 6 rest http-post url-encoding backbone.js
我正在创建一个连接到RESTful后端的骨干应用程序.当我在模型上调用save()时,它将发布的数据作为字符串化的JSON发送:
{"firstName":"first","lastName":"last","Email":"email@gmail.com"}
Run Code Online (Sandbox Code Playgroud)
但我的服务器希望它的格式像查询字符串:
firstName=first&lastName=last&Email=email@gmail.com
Run Code Online (Sandbox Code Playgroud)
有没有办法让骨干以不同的方式发送它?
Backbone不提供开箱即用的任何东西.
但很容易根据您的需要覆盖和定制它.
看一下源代码:http: //documentcloud.github.com/backbone/docs/backbone.html
并查看该呼叫save,它将sync在后台触发呼叫.
所以你需要的是Backbone.sync用你自己的功能覆盖功能.
我会修改以下部分:
if (!options.data && model && (method == 'create' || method == 'update')) {
params.contentType = 'application/json';
params.data = JSON.stringify(model.toJSON());
}
Run Code Online (Sandbox Code Playgroud)
同
if (!options.data && model && (method == 'create' || method == 'update')) {
params.contentType = 'application/json';
params.data = $.param(model); // <-- CHANGED
}
Run Code Online (Sandbox Code Playgroud)
请注意我正在使用jQuery param
如果要使用自定义函数,请检查以下问题: Javascript对象的查询字符串编码
[更新.]
无需直接修改.最好使用您自己的函数'Backbone.sync'覆盖它.检查Backbone存储库的"TODO"示例.它有一个localStorage.js覆盖Backbone.sync函数的文件https://github.com/documentcloud/backbone/tree/master/examples
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |