gpt4 book ai didi

javascript - 无法检索 Express JS 中表单标签发布的文本数据

转载 作者:行者123 更新时间:2023-12-02 23:29:10 27 4
gpt4 key购买 nike

我正在开发一个简单的管道,当用户突出显示 chrome 页面中的文本 block 并单击扩展时,它会显示 <iframe> 内突出显示的文本。定义于 popup.js chrome 扩展并将突出显示的文本发送到 Express.js 中运行的服务器.

当前状态是popup.html运行popup.js,popup.js写下highlighted text进入document 。到目前为止,效果很好。

但是node app.js的运行终端继续显示undefined每当我点击 chrome extension favicon 。我希望突出显示的文本显示在终端日志中。

造成这种错误行为的可能原因是什么?

popup.html

<html>
<head>
<meta charset="UTF-8">
<style>
body {
width: 400px;
height: 500px;
}
iframe {
width: 400px;
height: 500px;
}
</style>
</head>
<body>

<iframe frameborder="1"></iframe> <!--'1' for border on/ '0' for border off-->

<script type="text/javascript" src="popup.js"></script>

</body>
</html>

popup.js

chrome.tabs.executeScript( {
code: "window.getSelection().toString();"
}, function(selection) {

document.write(selection[0]);

var text =
'<form action="http://localhost:8080/example" method="post" id="hlgt_form">' +
'<input type="hidden" id = "hlgt" name = "hlgt" value= ""> ' +
'</form>';

document.write(text);

document.getElementById('hlgt').value = selection[0];
// it stores highlights into value of <input>

document.getElementById('hlgt_form').submit();
});

app.js(由节点app.js运行)

const express = require('express');
const app = express();

app.use(express.json());

const port = 8080;

app.listen(port, () => {
console.log(`Server running on port: ${port}`);
});

app.post('/example', (req, res) => {
console.log(`${req.body.name.hlgt}`);
});

最佳答案

我认为问题出在您的 Express 应用程序中。您似乎没有使用 body-parser 中间件来实际获取请求中的 HTTP POST 数据,即使您这样做了,您也会将该信息引用为 req.body.hlgt,而无需.name.

尝试这样的事情:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true }));

const port = 8080;

app.listen(port, () => {
console.log(`Server running on port: ${port}`);
});

app.post('/example', (req, res) => {
console.log(`${req.body.hlgt}`);
});

关于javascript - 无法检索 Express JS 中表单标签发布的文本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56589914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com