【发布时间】:2015-08-28 11:28:33
【问题描述】:
我想使用form.submit() 方法将文件从extjs 上传到跨域服务器。当我致电form.submit() 时,请求将发送到我的宁静网络服务,并且文件正在成功上传。但响应在浏览器处被阻止,并显示消息:Blocked a frame with origi...host:1841" from access a cross-origin frame。
从较早的帖子和表单提交代码中,我发现 doSubmit() 发送的 Ajax 请求没有 cors:true 语句,因为跨域响应被阻止。
我想发送普通的ajax请求,但不知道如何读取文件数据并通过ajax请求发送到服务器。
php 有没有像form.doSubmit() 那样将文件数据发送到服务器?有人可以帮我解决这个问题吗?
谢谢。
解决方案是:What does document.domain = document.domain do? 和 http://codeengine.org/extjs-fileuplaod-cross-origin-frame/
【问题讨论】:
-
我不知道你该怎么做,但你试过
standardSubmit: true吗?这将发送常规表单发布请求而不是 ajax 请求。此外,如果只是端口差异(但在同一台服务器上),一些 Web 服务器可以选择从标准端口反向代理到特殊端口,例如 nginx,例如this link,这样请求就在同一个端口上。 -
谢谢,我试过这个选项并观察到:响应在浏览器中显示为新页面。如果我导航到后面,那么我可以看到我的表格。尽管我发出了打印响应的警报,但它在页面中显示为新内容并且表单消失了。您能否帮助解释如何将响应打印为警报而不是打印为新页面?在生产中,在新页面中打开响应可能看起来不太好。
-
嗨,你能帮忙解决这个问题吗?我在同一个问题上被困了一周..
标签: extjs php javascript extjs