我试图使用jQuery形式n来处理ajax表单中的文件上传。
只要我没有表单中的inputtype=file,一切都能正常工作。
当我向表单中添加一个文件输入类型时,它将上传该文件并按照FireFox中的要求工作,但我在Chrome中得到了这个错误:
不安全的JavaScript试图从具有URL 元素的框架访问具有URL 元素的框架。域、协议和端口必须匹配。
它清楚地说明了必须匹配的域、协议和端口。我是不是遗漏了什么,在同样的错误中,它显示了两个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发布于 2011-04-13 00:25:43
肯定很奇怪。我会尝试将整个设置为"POST“,因为inputtype=file将需要这样做。当然,它的效果应该是混合的,但是试一试。
$(document).ready(function() {
var options = {
success: function(data) {
alert(data);
},
dataType: 'html',
type: 'POST', // <-- This was added
url: '/inc/ajax/edit_page/'
};
$('#add_elements_form').ajaxForm(options);
});发布于 2011-08-24 03:57:21
最近,我在jquery文件上传时遇到了同样的问题。错误和大卫B一样
“不安全的JavaScript试图从具有URL 元素的帧中访问具有URL 页/页的帧。域、协议和端口必须匹配。”
在我的例子中,调用页面url和文件上传url都指向xxx.mydomain.com,但是当加载调用页面时,一个javascript将document.domain设置为mydomain.com并导致错误。在加载调用页后检查document.domain,发现问题并通过删除javascript for xxx.mydomain.com中的document.domain行来修复
https://stackoverflow.com/questions/5642829
复制相似问题