在 Chrome 扩展程序中通过发布请求发送网址加载

send the URL onload by post request in chrome extension

本文关键字:请求 加载 布请求 扩展 Chrome 程序      更新时间:2023-09-26

第一次使用该网站提问 我是Chrome扩展程序的新手,所以我确定我犯了一些错误,我提前

道歉

我正在通过发布请求发送当前选项卡的网址加载,我只能让它通过提交发送网址如何在页面加载中自动发送它

这是我的代码

manifest.json

       {
      "manifest_version": 2,
      "name": "Phishing tool",
      "description": "This extension send url to server to check for phishing",
      "version": "1.0",
      "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
      },
      "permissions": [
        "activeTab",
        "tabs",
        "http://localhost:8080/ph/FirstServlet*"
        ]
    }

弹出窗口.html

<!DOCTYPE html>
<html>
<head><script src="p.js"></script></head>
<body>
<object width="200" height="50" ></object>
<form action="http://localhost:8080/ph/FirstServlet" method="POST">

link:<input type="text" name="first_name"> <br /><br />
<input  type="submit" value="Submit" />
</form>
<p>
<button id="myBtn"> click here to display the url</button> </p>
<h1 id="demo">Url displays Here</h1>
</body>
</html>

p.js

    document.addEventListener("DOMContentLoaded", function() {
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
        var tabURL = tabs[0].url;
        var xhr = new XMLHttpRequest();
        xhr.onload = function(){
              console.log(xhr.responseText);
        };
        xhr.open("POST", "http://localhost:8080/ph/FirstServlet");
        xhr.send(tabURL);
    });
});

我试过了,但是当我单击插件图标时,它没有显示来自服务器的响应

假设您要将 url 从弹出页面(扩展过程)发送到您的服务器,并且您的服务器 url SERVER_URL ,您需要执行以下操作:

  1. manifest.json文件的permissions字段中添加SERVER_URL,对于您的情况,它将是

    "permissions": [
        "http://localhost:8080/ph/FirstServlet/*"
    ]
    
  2. popup.js中进行 ajax 调用

    document.addEventListener("DOMContentLoaded", function() {
        chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
            var tabURL = tabs[0].url;
            var formData = new FormData();
            formData.append("first_name", tabURL);
            var xhr = new XMLHttpRequest();
            xhr.onload = function(){
                console.log(xhr.responseText);
                // Your logic
            };
            xhr.open("POST", SERVER_URL);
            xhr.send(formData);
        });
    });