从Chrome扩展制作HTTP GET请求

Making HTTP GET request from Chrome Extension

本文关键字:HTTP GET 请求 Chrome 扩展      更新时间:2023-09-26

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

使用Chrome调试器,我可以看到调用是进行的,但它从未在localhost服务器(正在运行)上收到。

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直接放在浏览器上,它会工作得很好。

怎么了?

我不知道上面的代码有什么问题,但我通过在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!');
	}
}

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

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