【问题标题】:jQuery form plugin - uploading file to a different domainjQuery 表单插件 - 将文件上传到不同的域
【发布时间】:2011-06-29 21:21:10
【问题描述】:

我有一个 asp.net 网站,它应该从不同的应用程序/域将文件上传到处理程序。我正在使用 jQuery 表单插件。当尝试在同一域上创建示例(上传到同一域)时,此设置成功。当尝试将文件从 siteA 上传到 siteB 时,我在 firebug 中看到来自处理程序的响应已返回(在“网络”选项卡中)并且有效,但是,代码永远不会进入“成功”处理程序,而是在萤火虫控制台:

[jquery.form] Server abort: Error: Permission denied to access property 'document' (Error) log: 
[jquery.form] cannot access response document: Error: Permission denied to access property 'document'
[jquery.form] aborting upload... aborted

在 chrome 中是:

Unsafe JavaScript attempt to access frame with URL http://domainB/handler.ashx from frame with URL domainA. Domains, protocols and ports must match.

现在,我知道域之间有一些关于 ajax 调用的政策,但似乎 jquery 表单插件只是试图访问一些被禁止的 url。 有没有人有解决方法?请任何解决方案!:)

更新: 我最终破解了 jquery.form,因此它不会引发跨站点异常,而且我不需要上传的实际结果 - 它对我有用!

【问题讨论】:

    标签: asp.net jquery-plugins jqueryform


    【解决方案1】:

    Check this 是的,这是同源策略。有一些方法可以使用 flash、iframe、jsonp 等解决此问题,但这需要编辑插件。

    【讨论】:

    • 嗯,你是不是建议我在 domainB 上添加一个页面并将其用作 domainA 中的 iframe ?
    • 我宁愿不那样做。您是否只需要上传文件,或者其他一些表单内容。如果仅文件 - 只需使用不同的插件,它适用于跨域请求(uploadify 可以)。如果没有,请在同一域上使用代理并从代码后面的 handler.ashx 代码中发布文件。
    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多