我想将 2 个变量发送到 Node js 服务器。我知道如何用一个来做到这一点...但是如果我想发送两个数据,这两个数据可以在 Node 中单独读取然后写入xml文件,我使用的方法不起作用。
http.createServer(function (req, res) {
if (req.method === "POST") {
req.on('data', function (data) {
requestData += data;
console.log(data.toString());
fs.appendFile('name.xml','<XML>' + data + '\n</XML>', function (err) {
});
});
}
这是我如何从 ajax 调用获取数据的 Node js 代码示例。
var info2value = $('#edittocatch').val();
var colorvalue = $('#catchColor').val();
$.ajax({
type: "POST",
url: 'http://127.0.0.1:5073/',
data: info2value
});
现在我应该怎么做才能发送 data2 data3 等?
最佳答案
使用对象作为 Ajax 数据属性的值,添加变量作为属性值:
$.ajax({
type: "POST",
url: 'http://127.0.0.1:5073/',
data: { info2value: info2value, colorvalue: colorvalue }
});
对于 NodeJS,您可以使用 url
和 querystring
将 URL 解析为可以使用通常的点表示法访问的对象。
var url = require('url');
var querystring = require('querystring');
http.createServer(function (req, res) {
var urlObj = url.parse(req.url);
var qs = querystring.parse(urlObj.query)
// access the URL parameters with dot notation eg: qs.infoValue2
});
url.parse
会给你类似的东西:
{ protocol: 'http:',
slashes: true,
auth: null,
host: '127.0.0.1:5073',
port: '5073',
hostname: '127.0.0.1',
hash: null,
search: '?info2value=moose&colorvalue=red',
query: 'info2value=moose&colorvalue=red',
pathname: '/',
path: '/?info2value=moose&colorvalue=red',
href: 'http://127.0.0.1:5073/?info2value=moose&colorvalue=red' }
从该对象的 query
属性上的 querystring.parse
将为您提供:
{ info2value: 'moose', colorvalue: 'red' }
关于javascript - 通过ajax发送数据并在node js服务器上获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850310/