Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我在尝试从chrome扩展js脚本使用mediawiki api时得到空值?_Javascript_Api_Mediawiki_Google Chrome Extension - Fatal编程技术网

Javascript 为什么我在尝试从chrome扩展js脚本使用mediawiki api时得到空值?

Javascript 为什么我在尝试从chrome扩展js脚本使用mediawiki api时得到空值?,javascript,api,mediawiki,google-chrome-extension,Javascript,Api,Mediawiki,Google Chrome Extension,在我正在构建的chrome扩展中有一个javascript脚本。它是内容脚本 该脚本正在使用mediawiki api: function wikifind(str) { var req = new XMLHttpRequest(); url = "http://en.wikipedia.org/w/api.php?action=query&format=xml&titles="+str; req.open("GET", url, true); r

在我正在构建的chrome扩展中有一个javascript脚本。它是内容脚本

该脚本正在使用mediawiki api:

function wikifind(str)
{
    var req = new XMLHttpRequest();
    url = "http://en.wikipedia.org/w/api.php?action=query&format=xml&titles="+str;
    req.open("GET", url, true);
    req.send;
}    
我有两个问题

首先是响应事件。不知道我应该把它放在哪里

req.onreadystatechange=function()
{
    if (req.readyState==4 && req.status==200)
    {
        document.write(req.responseXML);
    }
}
在发送请求的函数之后的某个地方,在它内部还是其他地方

第二个更重要的问题是,当我试图访问响应时,得到的是空值

我试着像在一个类似的问题中所说的那样将格式转换为JSON,但没有成功。还尝试了同步请求,但仍然得到空值


有什么想法吗?这是否与扩展的安全限制有关,或者只是我的代码有问题?

对我来说,这似乎是一个相同的问题。根据,内容脚本不支持跨域XHR。建议用户创建背景页面,声明对相关站点的跨源权限(在本例中为
http://en.wikipedia.org
),然后使用在内容脚本和后台页面之间进行通信


有一个(带有源代码)可用。

是的,你说得对。我将它从background.html改为work,并用代码交换消息,它就工作了。谢谢