我对AJAX还是很陌生,所以很抱歉可能会引起误解,但我还没有完全理解。
我正在尝试一件简单的事情。我有一个server.js文件,基本上是我的后端。然后我有一个index.html和一个script.js。就是这样,这是一个非常基本的设置。现在,在我的上script.js,我正在获取一些数据(邮件地址)。现在,我想将该数据发送到我的后端(进入server.js)以在那里使用它。我怎样才能做到这一点?
server.js
index.html
script.js
我已经找到了一些关于使用node.js进行AJAX的帖子,但是我不明白,特别是在后端我的接收位置。顺便说一下,我正在为服务器使用Express。
我所拥有的script.js是:
$.ajax({ type: "POST", url: "server.js", data: { mail: mail }, success: function(data) { }, error: function(jqXHR, textStatus, err) { alert('text status '+textStatus+', err '+err) } });
到目前为止正确吗?现在如何接收我的信息server.js?
到目前为止,没有多少,只是:
var express = require('express'); var app = express(); var server = app.listen(3000); app.use(express.static('public'));
谢谢你的帮助 :)
注意:这是在使用代码更新问题之前编写的,因此,我在此处用作示例的字段名称和端口号可能需要更新为正确的值。
客户端代码-jQuery示例:
$.post('/email', { address: 'xxx@example.com' });
(这可以接受可选的回调,并且返回可用于添加成功/错误处理程序的promise)
服务器端代码-Express示例:
const express = require('express'); const bodyParser = require('body-parser'); const dir = path.join(__dirname, 'public'); const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.post('/email', (req, res) => { // you have address available in req.body: console.log(req.body.address); // always send a response: res.json({ ok: true }); }); app.use(express.static(dir)); app.listen(4443, () => console.log('Listening on http://localhost:4443/'));
假设您的静态文件(HTML,客户端JavaScript,CSS)位于public相对于server.js文件的目录中。
public