我的index.php页面上有一个图像上传器,当图像开始上传时(通过将图像拖到上传框中启动),创建了POST请求(FYI HTML5 + php Uploader)
POST http://localhost:8888/backbone_images/post_file.php
在我的post_file.php中,我通过将其插入我的exit_status来检索上传图像的URL,而不是稍后在我的脚本中将其分配给全局javascript变量'globe'
if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
exit_status($pic['name']);
}
在我的主干脚本文件中,我检查Drop事件中的drop事件是否正常,
App.Views.AddImage = Backbone.View.extend({
el: '#addImage',
events: {
'drop': 'submit'
},
所以图像已经拖到了Dropbox上,我调用我的提交函数来创建一个新模型 并分配新图像的URL(我通过javascript变量) 到我的新模型的网址
submit: function(e) {
e.preventDefault(); // preventing default submission..
var newImage = globe; // assign globe --url of the newly created image--to new model
var imager = new App.Models.Person({ url: newImage });//creating a new img object
this.collection.add(imager);
}
问题是当我的主干提交功能在图像被删除后被触发时,我对/post_file.php的POST还没有运行,因此我的变量'globe'不包含新的URL,并且我新创建的模型最终缺少网址
所以问题:在图像丢失之后,在执行我的'submit'功能之前,有没有办法等待POST在我的骨干事件中完成?
我尝试在我的提交函数中使用:$.when( $.ajax("/post_file.php") )
,但所有这一切都是运行另一个POST请求,留下我的变量值,而不是运行原始POST请求检索我正在等待的图像URL
我首选的工作流程是
一个。拖动/上传图片,(POST执行) 湾新模型被添加到 使用上传图片的网址收集
但我必须首先添加额外的点击功能,否则POST无法完成
一个。拖动/上传图片,(POST peforms) 湾单击提交按钮 C。模型被添加到集合