2012-01-12 36 views
2

没有人使用jQuery表单插件与Box.net云存储。目前,我正在努力使用jQuery表单插件将文件上传到box.net。jQuery表单插入Box.net

我的Javascript代码:

$(document).ready(function(){ 
     jQuery('#uploadForm').ajaxForm({ 
      beforeSubmit: function() { alert('before');}, 
      success:  function(data) { alert('success: ');}, 
      url:   'https://upload.box.net/api/1.0/upload/token/183331021', 
      type: 'POST', 
      dataType:  'xml', 
      crossDomain: true 
     }); 
    }); 

我的页面:

<form id="uploadForm" name="uploadForm" action="" method="POST" enctype="multipart/form-data"> 
    <label>File to upload</label> 
    <input type="file" size="30" name="file" id="fileToUpload"/> 
    <input type="text" value="hello"/> 
    <input type="submit" value="Upload"></input> 
</form> 

看来,成功的功能从来没有得到执行,没有任何人有什么可能会导致此任何想法?

+0

有没有可以使用的错误回调?不介意赌博,并且你在那里得到一个错误。 – 2012-01-12 08:30:06

+0

看起来像*相同的来源政策* - AJAX不适用于外部域。你将不得不使用服务器端请求。 – 2012-01-12 08:36:38

+0

看到[这个问题](http://stackoverflow.com/questions/5512529/upload-files-to-the-cloud-from-web-application)它证实了我以前的假设。 – 2012-01-12 08:37:59

回答

0

Ajax不适用于不同的域。这是JavaScript的“安全特性”。

http://en.wikipedia.org/wiki/Cross-site_scripting

一种可能的解决方法是通过其然后将其传输到您的HTTPS框地址以上的相对服务器端请求以镜像的Ajax柱。我已经使用Perl和ASP.Net完成了这个任务,但是也可以使用其他人完成。