app.get('/documents/ajax/:id.:format?', function(req, res) { console.log ('Request Received'); var body = 'hello world'; res.writeHead(200, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); })
$.ajax({ url : "/documents/ajax/" + item, success : function(msg) { alert ("success" + msg); }, error : function(request, status, error) { alert("Error, returned: " + request); alert("Error, returned: " + status); alert("Error, returned: " + error); } });
但我的成功事件并未在客户端JS中被调用。此外,当我停止我的Web服务器时,我看到我的错误处理程序被调用。
请帮忙。
答案 0 :(得分:1)
主要问题是您没有结束响应,因此服务器实际上从未向客户端发送任何内容。服务器应该使用文件,重定向,某些文本等进行响应。您需要使用res.end
,res.send
,res.sendfile
,res.redirect
完成回调, res.render
...请参阅docs。
此外,使用快递您需要使用res.set
来设置http标头:
app.get('/documents/ajax/:id.:format?', function(req, res) {
console.log ('Request Received');
var body = 'hello world';
res.set({'Content-Type': 'text/plain'});
res.send(body);
});
200
是默认的响应代码,因此您无需指定该代码,并且将为您计算长度。通过curl
:
curl http://localhost:3000/documents/ajax/1
和
curl -I http://localhost:3000/documents/ajax/1
答案 1 :(得分:1)
我不得不在服务器请求处理程序中重新生成。之后,我能够在客户端JS
中生成成功事件