我有以下骨干模型
define(["jquery", "underscore", "backbone"],
function ($, _, Backbone) {
var file_upload = Backbone.Model.extend({
url: 'http://localhost:8080/rest/customForms'
});
return file_upload;
}
我有一个加载的视图
本地主机:38559/app/forms.html
它尝试使用以下代码发布帖子
var fd = document.getElementById('fileToUpload').files[0];
var file = new file_upload();
file.fetch({data: $.param({fileToUpload: fd}),
type: 'POST',
success: function(d){
console.log('success');
}
});
但这似乎只是对 forms.html 发出 get 请求,将 fd 作为参数传递。我也尝试过覆盖 file_upload 中的同步方法
sync: function (method, model, options) {
var self = this;
options = _(options).clone();
var error = options.error;
options.error = function (jqXHR, textStatus, errorThrown) {
alert('error');
if (error)
error(jqXHR, textStatus, errorThrown);
};
var success = options.success;
options.success = function (data, textStatus, jqXHR) {
if (success && data) {
alert("Success uploading form.");
success(data, textStatus, jqXHR);
}
else
alert("Error uploading form. Please try entering again.");
};
var params = {
type: 'POST'
};
$.ajax(_.extend(params, options));
}
}
我正在使用类似代码在应用程序的其他部分发布帖子,因此无法弄清楚为什么使用此代码获取对调用它的页面的获取请求,而不是对模型中指定的 url 的发布。有没有人有任何想法?
谢谢, 真皮