我创建了一个通过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,先谢谢了
var resultData=“”; request.on('data',function(data){ resultData = resultData +data; }); request.on('end',function(){ //请求的数据获取 //获取数据后,按数据类型自行解析 });
首先Ajax请求对node端和普通请求应该是一回事儿,所说的异步只是对客户端而言的,然后你的post数据过去我觉得没必要当成xml ,可以直接当字符串来传,到node那一段用fs 模块写下就好了!
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个参数的。
客户端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);
});