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,先谢谢了

阅读 14.1k
4 个回答

客户端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);
});

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个参数的。

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

var resultData=“”;
request.on('data',function(data){
    resultData = resultData +data;
});
request.on('end',function(){
    //请求的数据获取
    //获取数据后,按数据类型自行解析
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题