通过ajax发送数据并在节点js服务器上获取它

时间:2014-09-15 14:22:57

标签: javascript jquery ajax node.js

我想发送让2个变量给节点js服务器。我知道如何用一个...但如果我想发送两个数据,可以在节点中单独读取然后写入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) {

    });

});

}

这是节点js代码示例我如何从ajax调用获取数据。

var info2value = $('#edittocatch').val();
var colorvalue = $('#catchColor').val();
 $.ajax({
                type: "POST",
                url: 'http://127.0.0.1:5073/',
                data:  info2value

            });

现在我该怎么做才能发送data2 data3等?

2 个答案:

答案 0 :(得分:1)

使用对象作为Ajax数据属性的值,将变量添加为属性值:

$.ajax({
  type: "POST",
  url: 'http://127.0.0.1:5073/',
  data: { info2value: info2value, colorvalue: colorvalue }
});

对于NodeJS,您可以使用urlquerystring将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' }

然后该对象的querystring.parse属性上的query会给你:

{ info2value: 'moose', colorvalue: 'red' }

答案 1 :(得分:0)

好的,我用Data.split(“”)处理它。它创建了带有单独字符串的数组。