首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome jQuery格式插件跨域安全漏洞?

Chrome jQuery格式插件跨域安全漏洞?
EN

Stack Overflow用户
提问于 2011-04-12 23:34:33
回答 2查看 1.8K关注 0票数 2

我试图使用jQuery形式n来处理ajax表单中的文件上传。

只要我没有表单中的inputtype=file,一切都能正常工作。

当我向表单中添加一个文件输入类型时,它将上传该文件并按照FireFox中的要求工作,但我在Chrome中得到了这个错误:

不安全的JavaScript试图从具有URL 元素的框架访问具有URL 元素的框架。域、协议和端口必须匹配。

它清楚地说明了必须匹配的域、协议和端口。我是不是遗漏了什么,在同样的错误中,它显示了两个URL和域、协议和端口都匹配吗?

下面是调用插件的JavaScript:

代码语言: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属性的权限

它指向插件中的代码区域:

代码语言:javascript
复制
            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;

具体而言,这一行:

代码语言:javascript
复制
 if (!doc || doc.location.href == s.iframeSrc
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-13 00:25:43

肯定很奇怪。我会尝试将整个设置为"POST“,因为inputtype=file将需要这样做。当然,它的效果应该是混合的,但是试一试。

代码语言:javascript
复制
$(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); 
});
票数 0
EN

Stack Overflow用户

发布于 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行来修复

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5642829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档