空节点.js/快速响应
Empty Node.js/Express response
我有一个 POST 请求要处理:
var app = require('express')();
var bodyParser = require('body-parser');
app.use(bodyParser());
. . .
app.post('/signup', function(req, res) {
console.log('name: ' + req.body.name);
console.log('email: ' + req.body.email);
. . .
});
一切似乎都很好,很花花公子。
我的客户:
<html><body>
<form>
Name:<br>
<input type="text" name="name"><br>
Email:<br>
<input type="text" name="email"><br>
<input id="submit" type="submit" value="Submit">
</form>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script>
$('input#submit').click(function() {
$.ajax({
url: 'http://localhost:5000/signup',
type: 'post',
dataType: 'json',
data: $('form').serialize(),
success: function(data) {
console.log('response:', data);
}
});
return false;
});
</script></body></html>
问题出在哪里? success
永远不会在客户端中调用。最终,Chrome JS-debug窗口显示:net::ERR_EMPTY_RESPONSE
。
我尝试在服务器中执行res.send(200)
,res.send('')
和res.end()
,但没有成功。
我的 Node.js 版本是 4.2.6,我认为我的 Express 版本是 4.4.1。
jQuery Docs
数据类型 - 您希望从服务器返回的数据类型;
data - 要发送到服务器的数据;
因此,前端应用程序需要有效的 JSON 返回,但主节点(字符串、数字、布尔值)不是有效的 JSON,必须对其进行转换。
为了在飞行中执行此操作:
res.json('success');
或
res.status(200).json('success');
如果你想坚持使用发送方法,你可以写:
res.send(JSON.stringify('success'));
另外,有时此问题与窗口和网络连接中的ipconfig有关
你能试试这个吗,
$.post('http://localhost:5000/signup', $('form').serialize(), function(data) {
console.log(data);
});
相关文章:
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- 如何发送作为节点请求响应函数中的代码块的响应
- 节点.js和表达式:如何在异步操作后返回响应
- 节点 js 中的请求和响应事件如何彼此不同
- 如何在节点中解码 gzip 或 utf-8 响应
- 回调返回响应,但当在API中发送时,响应在节点JS中显示为空白
- 如何读取在节点中发出的简单http请求的响应
- 在JavaScript节点环境中将Gzip内容编码响应转换为JSON数据
- 响应字段包含一个子级时的节点 SOAP 强制数组
- 无法将节点邮件程序错误响应从节点.js发送到角度.js
- 节点.js请求对象 - 返回响应正文以供进一步操作
- 节点.js教程 Web 服务器没有响应
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- 节点.js HTTP 响应流
- 节点.js浏览器响应:连接超时
- 如何从角度读取节点服务器的 json 响应
- 节点 + 角度:响应标头未在请求中传递
- 如何在发送响应节点js(Sails)之前设置cookie
- 在已经使用的响应节点js之后重定向
- JSON响应节点的JS错误