从Chrome扩展程序发出HTTP GET请求

时间:2016-08-26 10:31:25

标签: javascript google-chrome-extension get google-chrome-devtools

我已经构建了一个chrome扩展,在加载时,我需要向服务器发出GET请求(现在从localhost尝试)。

使用Chrome调试器我可以看到调用已经完成,但是它从未在locahost服务器上运行(正在运行)。

Javascript代码:

$.get( "http://localhost:8080/myproject/api/getInfo", { userId: "me" } )
  .done(function( data ) {
    alert('Received!');
});

这是我在Chrome调试器中看到的内容:

Request URL:http://localhost:8080/myproject/api/getInfo?userId=me
Request Headers
Provisional headers are shown
Accept:*/*
Origin:chrome-extension://ginkmpnhbepolafnopjackbgefh
Query String Parameters
view source
view URL encoded
userId:me

如果我将http://localhost:8080/myproject/api/getInfo?userId=me直接放在浏览器上,则效果很好。

有什么问题?

2 个答案:

答案 0 :(得分:1)

我不知道上面的代码有什么问题,但我通过在chrome扩展脚本上创建一个AJAX XMLHttpRequest对象,使用下面的代码完成了同样的事情。

var userid="me";
var xmlHttpRequest = (window.XMLHttpRequest) ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
xmlHttpRequest.open("GET","http://localhost:8080/myproject/api/getInfo",true);
xmlHttpRequest.send("userid="+userid);
xmlHttpRequest.onreadystatechange = function()
{
	if(xmlHttpRequest.readyState == XMLHttpRequest.DONE)
	{
		alert('Received!');
	}
}

答案 1 :(得分:0)

我遇到的问题是浏览器阻止了从HTTPS网站(显示插件的地方)到HTTP://localhost的来电。

当我使用HTTPS服务器网址将其部署到生产环境时,它开始工作。