【问题标题】:Javascript, Chrome Extension development, XMLHttpRequest Access-Control-Allow-Origin problemJavascript、Chrome Extension开发、XMLHttpRequest Access-Control-Allow-Origin问题
【发布时间】:2011-10-06 05:45:00
【问题描述】:

我对这个扩展有一个稍微令人困惑的问题(尽管这可能只是我的经验不足) 在我的清单文件中,我有:

"permissions": [
    "http://mafre.com/","http://eee.se/","http://ilaafire.net/","notifications","tabs"

我正在使用此代码发送 XML 请求:

var http = false;
    http = new XMLHttpRequest();

function replace() 
{


            http.open("GET", "http://www.mafre.com/proj/test.php"+getquerystring(), true);
            http.onreadystatechange=function() 
            {

            if(http.readyState < 4) {show_wait_gif();}
                else if(http.readyState == 4) 
                {
                    updatepage( http.responseText);

                }
            }
          http.send(null);
 }

我在另一端的脚本正在获取数据...但是当我需要获取响应时,Chrome 会抛出此错误:

XMLHttpRequest cannot load http://www.mafre.com/proj/test.php?w=rn@ee.se. Origin 
chrome-extension://kjggpdimdloblnddfbnodggchjpalihb is not allowed by Access-Control-Allow-Origin.

这是为什么呢?我已经授予它与域交互的权限,为什么即使它正在发送查询,我也无法得到响应?

我应该返回到我的页面的回复类似于“已接受电子邮件,谢谢!1”

谢谢!

【问题讨论】:

    标签: javascript ajax permissions google-chrome-extension


    【解决方案1】:

    我相信您应该使用通配符权限 URL,www. 也是一个不同的域:

    "http://mafre.com/*",
    "http://www.mafre.com/*",
    
    "http://eee.se/*",
    "http://www.eee.se/*",
    
    "http://ilaafire.net/*",
    "http://www.ilaafire.net/*",
    
    "notifications",
    "tabs"
    

    目前您只能访问确切的http://mafre.com/

    【讨论】:

    • @Ryan:对我有用。您是否重新加载了扩展程序?
    • @Ryan:我上传了最简单的版本,它可以工作:2shared.com/file/850FaUZF/origin.html
    • 啊!我的愚蠢错误,我打开了两个清单文件并且正在编辑错误的一个(严重的DUH!时刻)。您的解决方案完美无缺,对上述情况感到抱歉。希望我能投票赞成您的帮助 x1000,再为我的愚蠢投票 x10000。再次感谢!
    猜你喜欢
    • 2014-03-05
    • 2016-04-22
    • 1970-01-01
    • 2013-04-12
    • 2016-09-20
    • 2015-12-10
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多