javascript - Chrome 扩展 - 使用托管的 PHP 脚本处理输出

标签 javascript php mysql google-chrome google-chrome-extension

我开发了一个 chrome 扩展程序,可以读取 HTML 内容并将其解析为 CSV 文件。 这部分效果很好,用户可以下载文件。

此时我想做的是找到一种方法将数据直接发送到 MySQL 数据库。

我知道 chrome 扩展不能运行 PHP(很明显)。但是,我确实可以访问托管的 Web 服务器,我可以将自定义 PHP 脚本上传到该服务器。

有什么方法可以将我解析的数据直接发送到托管的 PHP 脚本,该脚本将处理数据,然后将数据发送到同一服务器上的 MySQL 数据库?

到目前为止,我研究的所有内容都导致了“chrome 扩展无法运行 PHP 脚本”。 . .

感谢您的帮助!

编辑:我想到的一个选择是用我的数据值注入(inject) HTML 隐藏字段,然后使用 javascript 将数据 POST 到 PHP URL。 . . .那会是一个选择吗? chrome 扩展可以注入(inject)隐藏字段吗?

最佳答案

您绝对可以从 chrome 扩展程序向服务器发出 POST 方法 HTTP 请求。它不需要任何类型的黑客来实现这一点。使用 native JavaScript,使用“POST”方法发送 XMLHttpRequest,或者使用像 jQuery 这样的库,只需发出一个 $.post 请求。

一些事情:

您将要使用 HTTPS,因此请为您的服务器/域获取 SSL 证书。如果您在受 HTTPS 保护的页面上解析任何类型的网站内容,并将其以明文形式发送到您自己的服务器,那么您正在做一件非常糟糕的事情。不要那样做。

确保您告诉用户您正在这样做。有些/大多数人可能不希望这样。

使用内容脚本从 DOM 中获取内容。使用 postMessage 消息传递将其传递给您的扩展后台脚本。

从您的后台脚本发出 POST 请求。

您需要更新您的 manifest.json 以获得您想要将内容注入(inject)到的 URL 的权限,以及向您的服务器域发出 POST 请求的权限。用户必须查看并批准这些权限,但他们不会知道您在做什么,因此请务必告诉他们。

关于javascript - Chrome 扩展 - 使用托管的 PHP 脚本处理输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18933223/

相关文章:

php - 将数组存储在数据库中

mysql - 如何以良好的方式将多个 django 表单保存到数据库中?提高绩效

javascript - 如何将具有多个对象的 JSON 对象转换为一组对象

javascript阅读更多功能?

php - 如何将 laravel/laravel 从 5.3 更新到 5.4?

php - 在子字符串上使用 DISTINCT() 对 MySQL 中电子邮件数据库中的域进行分组

javascript - Spring boot自定义gson BEGIN_OBJECT但出现STRING错误

javascript - 测试 jQueryUI 是否加载

mysql - 1292 截断了不正确的 INTEGER 值

mysql - SQL = vs LIKE vs LIKE BINARY,不区分大小写