nodejs应该怎么接受ajax上传的数据?


我创建了一个通过web页面编辑修改服务器端的xml文件的网页,网页通过JS读取并修改了xml文件并将其储存在全局变量xmlDoc里面,我想通过jquery和ajax进行上传。

其中xmlDoc的内容是包含整个xml文档里面所有的乱七八糟的信息的,包括题头等,所有我并不知道该怎么上传。

预计方式是同下面代码:


 function upload() {
    $.ajax({
        type:"POST",
        url:"/whatever",
        data:"xml=" + xmlDoc,
        dataType:"xml",
    });

上面只是预计代码,并未试验过(因为我连怎么试验都不会啊= =||)
由于xmlDoc的值真的是乱七八糟,所以到现在上传信息还没成功过,希望大触能帮忙修改一下=。=
另外node端的接受代码我也不会写,app.params, app.body并不知道该用哪个,也不知道该怎么提取xml=后面的信息,求大触帮忙解决一下OTL,先谢谢了

node.js Ajax

逃避、现实 9 years, 2 months ago

 var resultData=“”;
request.on('data',function(data){
    resultData = resultData +data;
});
request.on('end',function(){
    //请求的数据获取
    //获取数据后,按数据类型自行解析
});

HKG字幕组 answered 9 years, 2 months ago

首先Ajax请求对node端和普通请求应该是一回事儿,所说的异步只是对客户端而言的,然后你的post数据过去我觉得没必要当成xml ,可以直接当字符串来传,到node那一段用fs 模块写下就好了!

快来造作啊 answered 9 years, 2 months ago

http server你可以使用node自带的http或者第三方的express,具体的用法你去百度一下吧。
另外回答你第二各问题
request.body是取你post方法中form里的床来的key value,而request.params是取你url上path中的参数,如res.post("/user/:id") 中用 request.params.id就能取得 参数id的值2(如:实际url为 http://xxxx/user/2 ),还有一种request.query是用来去get方法中url后带的参数 如 http://xxx/user/?pageNo=1&pageSize=10 中问好后的2个参数的。

Wiike answered 9 years, 2 months ago

客户端js应该如下:


 $.ajax({
  type:"POST",
  url:"/whatever",
  data: {xml: xmlDoc}
});

Node.js 可以这样处理:


 app.post('/whatever', function(req, res, next){
  // xml string
  console.log('xmlDoc:', req.body.xml);
  res.json(req.body.xml);
});

比黑更黑更黑 answered 9 years, 2 months ago

Your Answer