【发布时间】:2011-04-12 23:34:33
【问题描述】:
我正在尝试使用jQuery Form Plugin 来处理以 ajax 形式上传的文件。
只要表单中没有输入[type=file],一切正常。
当我将文件输入类型添加到表单时,它会上传文件并按预期在 FireFox 中工作,但我在 Chrome 中收到此错误:
不安全的 JavaScript 尝试访问 带有 URL 的框架 http://swbdev.net:8888/inc/ajax/edit_page/ 从带有 URL 的框架 http://swbdev.net:8888/site-pages-edit/19d8bb79c95e164f736f324d1b09a33e/1/#add_elements。 域、协议和端口必须 匹配。
它明确指出域、协议和端口必须匹配。我是否遗漏了什么,在同一个错误中它显示两个 URL 以及域、协议和端口都匹配?
这里是调用插件的 JavaScript:
<script type="text/javascript">
$(document).ready(function() {
var options = {
success: function(data) {
alert(data);
},
dataType: 'html',
url: '/inc/ajax/edit_page/'
};
$('#add_elements_form').ajaxForm(options);
});
</script>
更多信息:
它现在在 FireFox 中也失败了,不知道为什么它之前会起作用,但这是 FireFox 中的错误:
权限被拒绝 http://swbdev.net:8888获取 属性 Location.href
它指向插件中的这个代码区域:
function cb() {
if (xhr.aborted) {
return;
}
var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
if (!doc || doc.location.href == s.iframeSrc) {
// response not received yet
if (!timedOut) return;
}
io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
var ok = true;
具体来说,这一行:
if (!doc || doc.location.href == s.iframeSrc
【问题讨论】:
-
将 document.domain 添加到 AJAX 正在发布的 .php 文件中以解决此问题,但会使解释和解析返回数据变得更加困难......
-
是的。我在 AJAX 查询中调用的 PHP 文件中添加了 JavaScript(document.domain)。
-
你能把你写到php文件的内容准确地写出来吗?是目标文件吗?
标签: javascript jquery ajax google-chrome