Backbone.js 主干提取命中错误的url
我有以下骨干模型Backbone.js 主干提取命中错误的url,backbone.js,model,fetch,Backbone.js,Model,Fetch,我有以下骨干模型 define(["jquery", "underscore", "backbone"], function ($, _, Backbone) { var file_upload = Backbone.Model.extend({ url: 'http://localhost:8080/rest/customForms' }); return file_upload; } 我有一个视图加载在 localhost:385
define(["jquery", "underscore", "backbone"],
function ($, _, Backbone) {
var file_upload = Backbone.Model.extend({
url: 'http://localhost:8080/rest/customForms'
});
return file_upload;
}
我有一个视图加载在
localhost:38559/app/forms.html
它尝试使用以下代码执行post
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作为参数传递。我还尝试覆盖文件上传中的同步方法
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));
}
}
我正在应用程序的其他部分使用类似的代码发布帖子,所以我不明白为什么使用这段代码,fetch会对调用它的页面执行get请求,而不是发布到模型中指定的url。有人有什么想法吗
谢谢,
Derm呃-终于找到了问题的根源。文件上载是在按钮单击事件中完成的。我需要调用preventdefault来强制使用模型url而不是页面url。恼人的问题-不知道我怎么会错过它!现在的代码是
uploadForm: function (e) {
e.preventDefault();
var self = this;
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');
}
});
},