Ric*_*ruz 5 javascript jquery node.js express
我有一个要处理的 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);
. . .
});
Run Code Online (Sandbox Code Playgroud)
一切看起来都很顺利。
我的客户:
<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>
Run Code Online (Sandbox Code Playgroud)
问题?success从未在客户端中调用。最终,Chrome JS 调试窗口显示:net::ERR_EMPTY_RESPONSE。
我尝试过在服务器中执行res.send(200),res.send('')和,但没有成功。res.end()
我的 Node.js 版本是 4.2.6,我的 Express 版本是 4.4.1。
jQuery 文档
dataType - 您期望从服务器返回的数据类型;
data - 要发送到服务器的数据;
因此,您的前端应用程序需要返回有效的 JSON,但主数据(字符串、数字、布尔值)不是有效的 JSON,必须对其进行转换。
为了动态执行此操作:
res.json('success');
Run Code Online (Sandbox Code Playgroud)
或者
res.status(200).json('success');
Run Code Online (Sandbox Code Playgroud)
如果你想坚持使用 send 方法,你可以写:
res.send(JSON.stringify('success'));
Run Code Online (Sandbox Code Playgroud)
另外,有时这个问题与windows中的ipconfig和网络连接有关
| 归档时间: |
|
| 查看次数: |
16755 次 |
| 最近记录: |