Express, AJAX - res.send 不发送任何数据
Express, AJAX - res.send not sending any data
我正在构建一个带有Node/Express/Mongo后端的应用程序,并在前端使用简单的jquery。
当我向我的服务器进行 Ajax POST 时,res.send 似乎没有发送任何能够被 POST 成功函数捕获的数据。
这是我的前端 AJAX 代码 -
$(".signup-form").submit(function(e){
var createUrl = $('.tutor-checkbox').is(':checked') ? serverUrls.createTutor : serverUrls.createStudent;
var formInput = {
email: $('#signup-email-input').val(),
password: $('#signup-password-input').val(),
first_name: $('#firstname-input').val(),
last_name: $('#lastname-input').val()
};
formInput = JSON.stringify({
user: formInput
});
$.ajax({
url:createUrl,
type:"POST",
data: formInput,
contentType:"application/json",
dataType:"JSON",
success: function(data){
console.log("success: ", data);
window.location = data.redirect;
}
})
e.preventDefault();
})
浏览器控制台中的打印输出为:
success: undefined main.js:45
Uncaught TypeError: Cannot read property 'redirect' of undefined main.js:46
我的服务器路由代码是:
app.post('/api/createtutor', function(req, res){
db.createUser(Tutor.model, req.body.user)
.then(function(data){
var queryString = utils.serialize({
first_name: req.body.user.first_name,
last_name: req.body.user.last_name
});
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.status(304).send({
redirect: "/tutor-profile-form?" + queryString
});
})
.catch(function(err){
res.status(404).end(JSON.stringify(err));
})
});
有人可以让我知道出了什么问题吗?我已经坚持了很长时间了!
提前非常感谢你。
e.preventDefault();
应该是第一行。所以:
$(".signup-form").submit(function(e){
// This should be line one
e.preventDefault();
var createUrl = $('.tutor-checkbox').is(':checked') ? serverUrls.createTutor : serverUrls.createStudent;
// etc etc
})
我想出了问题:
问题是我在服务器中的承诺:
db.createUser(Tutor.model, req.body.user)
.then(function(data){
...
我使用 Q 库来承诺函数,出于某种原因,Express 不喜欢它,也没有执行 res.send。
我将其改回普通回调,它起作用了。
相关文章:
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- php函数的XMLHttpRequest响应不包含任何数据
- Javascript-Ajax 无法发送任何数据
- 为什么复选框在未选中时不提交任何数据
- 如果发现任何数据,如何停止每7秒运行一次的函数
- onClick()函数没有'不要发布任何数据
- ajax调用成功,但未返回任何数据
- 带有大型JSON的简单ngTable在单元格中不显示任何数据
- 动态输入文件中未加载任何数据
- 输入类型“文本”的 ng-init 不会在文本框内显示任何数据
- AngularJS “ng-repeat |滤波器:..“没有像我预期的那样工作(不显示任何数据)
- 发送 XHR 请求而不接收任何数据
- $.getJSON 没有进入函数,也没有获取任何数据
- Chained Promise with Express:在最后一步中未收到任何数据
- 蓝鸟承诺不会收到任何数据
- jQuery $.ajax 成功,但 serv 没有接收任何数据
- 我没有从getJSON函数获得任何数据
- 套接字 - 客户端站点上不显示任何数据
- XMLHttpRequest 不接收任何数据或只是“未定义”
- 在按 TAB 键时,文本字段中没有任何数据,它应该显示所需的字段验证 ASP.NET