如何使用ajax上传文件跨域?

时间:2012-06-08 21:08:01

标签: ajax file-upload cross-domain

我正在foo.bar上的表单中上传文件。 我正在使用jquery.form.js,因为我不希望浏览器离开。

var ref = this;
var options ={ 
    success: onSuccess,
    beforeSubmit: onBeforeSubmit
};
$("form#file-upload).ajaxForm( options );

当“action”属性设置为同一个域时,它可以正常工作。但如果“动作”在不同的域(例如api.foo.bar)

,我会收到错误
  

不安全的JavaScript尝试使用URL访问框架   来自带有网址http://api.foo.bar/file/的框架的http://foo.bar/index.php。   域,协议和端口必须匹配。

我知道jquery.form插件正在创建一个iframe并在那里发布请求。

有没有办法避免错误?

1 个答案:

答案 0 :(得分:0)

设置dataType:"jsonp"。见这里:http://api.jquery.com/jQuery.ajax/

以下是有关jsonp的更多信息:

http://en.wikipedia.org/wiki/JSONP

http://remysharp.com/2007/10/08/what-is-jsonp/