需要php页面通过chrome扩展帖子方法

时间:2016-11-28 18:54:05

标签: javascript php google-chrome-extension

我有一个chrome扩展可点击图标,可以调用并显示目标php页面。但是,单击时,我想检索当前浏览器选项卡的完整URL并将其发布到php页面。那个php页面需要简单地回显发送给它的url。看起来很简单,有几个密切相关的SO页面讨论类似的问题,我从中开发了下面的代码。目前,php页面被调用,但我不能让它回应url。我得到的只是array(0) { }。我已经从精细的SO Q& A中尝试了一些代码修改,但是在这一点上我不确定问题出在哪里......任何解决方案都是可以接受的,我&#39 ; m不受限制或约束于此处尝试的方法。

的manifest.json

{
  "manifest_version": 2,
  "name": "A chrome extension plugin",
  "description": "Some descriptive text.",
  "version": "1.0",
  "browser_action": {
   "default_icon": "anIcon.png",
   "default_popup": "popup.html"
  },
  "permissions": [
   "activeTab"
   ]
}

popup.html

<!doctype html5>
    <html>
      <head>
        <title>Text</title>
        <script src="popup.js"></script>
      </head>
      <body>
        <h1>More Text</h1>
        <button id="checkPage">Enlighten me!</button>
      </body>
    </html>

popup.js

document.addEventListener('DOMContentLoaded', function() {
    var checkPageButton = document.getElementById('checkPage');
    checkPageButton.addEventListener('click', function() {
        chrome.tabs.query({currentWindow: true, active: true}, function(tab){
            doc = document;
            var form = doc.createElement('form');
            form.action = 'http://myGreatSite.com/ABC.php';
            form.method = 'post';
            var input = doc.createElement('input');
            input.type = 'hidden';
            input.name = 'url';
            input.value = tab[0].url;
            form.appendChild(input);
            doc.body.appendChild(form);
            form.submit();
        });
    }, false);
}, false);

myGreatSite / ABC.php

<!DOCTYPE HTML5>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Give me the calling URL</title>
</head>
<body>
<h1>Here's the calling URL</h1>
<?php
var_dump($_REQUEST);
var_dump($_POST);
?>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

Bahhhh!经过几个小时的颠簸,结果证明,myGreatSite.com安装了SSL证书,即使有一个.htaccess文件允许用http和https调用它,对于我们的目的,它必须像下面。尾随斜线也是一个好主意。我不确定这是为什么......

form.action = 'https://myGreatSite.com/ABC.php/';