【发布时间】:2017-08-16 02:46:21
【问题描述】:
我正在做一个chrome extension tutorial。 pop.html 文件有一个 POST 表单,它连接到一个名为 script.php 的 php 文件。当我在浏览器中打开 script.php 时,代码会执行 echo 语句以进行测试。但是,当我运行 chrome 扩展程序时,我填写了表单并单击“提交”按钮,但它没有执行 script.php 中的代码,它只是将 script.php 中的代码打印为弹出窗口中的纯文本。
谁能解释为什么 php 代码不适用于扩展?一整天我都尝试了以下帖子中描述的所有解决方案:post1post2post3
以下是我的文件和代码供参考。
在我的 MAMP 目录中,我在名为“GlassExt”的项目文件夹中有以下文件:
manifest.json
{
"manifest_version": 2,
"name": "Glass - Connect to Database",
"description": "test database functionality",
"browser_action":{
"default_title":"Hello, Yo!",
"default_popup":"pop.html"
},
"version": "1",
"permissions": [
"http://localhost/*"
]
}
pop.html
(我之前将“action”属性设置为“http://localhost/glassExt/script.php”,但由于某种原因,表单根本不会提交。)
<DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>This is a title, yo</title>
</head>
<body>
<form action="script.php" method="POST">
<input type="text" name="name" placeholder="Your Name"><br>
<input type="text" name="email" placeholder="Your Email"><br>
<input type="submit" value="Go">
</form>
</body>
</html>
脚本.php
<?php
$test = "this is a test";
echo $test
?>
【问题讨论】:
-
Chrome 不包含 PHP 解释器或内置 Web 服务器。所以提交表单是没有用的,只是重新加载页面。使用 JavaScript 和普通按钮。
-
php 脚本似乎可以在此处的 chrome 扩展教程中工作:youtube.com/watch?v=RXBxAlzmmgk。我需要 MAMP 以外的其他服务器吗?
-
不管看起来如何,Chrome 没有 Web 服务器,也没有 PHP 解释器。请注意您可以在 devtools 中看到的弹出窗口的 chrome-extension:// 协议,以及它与外部服务器提供的 http:// 的不同之处。
标签: php google-chrome-extension mamp