Nodejs代码:
router.post('/getdata', function(req, res) {
xmlhttp.open('POST', webserviceurl, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var xmlString = xmlhttp.responseText;
parser.parseString(xmlString, function(err, xmlresult){
if(err) throw err
res.send({result:xmlresult});
});
}
} //return false;
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(args);
});
Jquery代码:
function getWebservicedata(){
$.ajax({
type: 'POST',
data: {id:userid},
url: '/getdata',
dataType: 'JSON'
}).done(function( data ) {
console.log(data)
});
}
在将node.js的结果发送到Ajax时,它将抛出Can't set headers after they are sent
错误,因为XML请求使用一个send()函数,而node.js再使用一个send()
函数。
Send()
函数存在冲突并抛出错误。