为什么我的 AJAX 每两分钟调用一次?
Why my AJAX is called every two minutes?
我在使用 POST ajax 函数时遇到问题。
我是 运行 一个简单的应用程序,由 express-generator 使用 node、express、mongodb、mongoose 和 jade 创建。在创建用于将新对象发布到数据库的模块之后,我注意到 POST / DELETE 请求已完成多次。这在 'on-click' 模式下都会发生,如果我将功能更改为在加载时自动加载。
请注意:该函数仅由用户调用一次 - 浏览器中没有日志。好像每2分钟运行一次,我完全不知道为什么。
如有任何帮助,我们将不胜感激。
Javascript代码:
$('#btn5').on('click', saveFiveDayForecast);
saveFiveDayForecast = function() {
var random = {
city: 'One'
}
$.ajax({
type: 'post',
data: JSON.stringify(random),
url: '/fiveDay/',
contentType: 'application/json',
dataType: 'JSON'
})
}
路由文件:
var express = require('express');
var router = express.Router();
// DB schema and model setup ----------------------------------------------
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// create 16 day schema
var fiveDaySchema = new Schema({
city : String
}, { collection: 'fiveDayModel' });
// create 16 day model for later manipulation in routing files
var fiveDayModel = mongoose.model('fiveDayModel', fiveDaySchema);
// END DB schema and model setup -------------------------------------------
/* POST */
router.post('/', function(req, res) {
var time = new Date();
var fiveDayWeatherToSave = new fiveDayModel( req.body );
console.log('post in the routing file was fired at: ');
console.log(time);
fiveDayWeatherToSave.save(function (err, data) {
if (err) console.log(err);
else console.log('Saved ', data );
});
});
来自节点的日志:
节点日志很有趣:第一次保存数据时没有POST行,但无论如何都保存了数据。
post in the routing file was fired at:
Wed May 13 2015 14:40:06 GMT+0100 (GMT Daylight Time)
Saved { __v: 0, city: 'One', _id: 55535436f0ee99bc1d790220 }
POST /fiveDay/ - - ms - -
post in the routing file was fired at:
Wed May 13 2015 14:42:06 GMT+0100 (GMT Daylight Time)
Saved { __v: 0, city: 'One', _id: 555354aef0ee99bc1d790221 }
POST /fiveDay/ - - ms - -
如果由于超时而失败,浏览器将重试请求。由于您从未 return 回复,所以这种情况总是会发生。您应该使用 res.end()
或 res.send("success!")
.
之类的内容进行回复
我在使用 POST ajax 函数时遇到问题。
我是 运行 一个简单的应用程序,由 express-generator 使用 node、express、mongodb、mongoose 和 jade 创建。在创建用于将新对象发布到数据库的模块之后,我注意到 POST / DELETE 请求已完成多次。这在 'on-click' 模式下都会发生,如果我将功能更改为在加载时自动加载。
请注意:该函数仅由用户调用一次 - 浏览器中没有日志。好像每2分钟运行一次,我完全不知道为什么。
如有任何帮助,我们将不胜感激。
Javascript代码:
$('#btn5').on('click', saveFiveDayForecast);
saveFiveDayForecast = function() {
var random = {
city: 'One'
}
$.ajax({
type: 'post',
data: JSON.stringify(random),
url: '/fiveDay/',
contentType: 'application/json',
dataType: 'JSON'
})
}
路由文件:
var express = require('express');
var router = express.Router();
// DB schema and model setup ----------------------------------------------
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// create 16 day schema
var fiveDaySchema = new Schema({
city : String
}, { collection: 'fiveDayModel' });
// create 16 day model for later manipulation in routing files
var fiveDayModel = mongoose.model('fiveDayModel', fiveDaySchema);
// END DB schema and model setup -------------------------------------------
/* POST */
router.post('/', function(req, res) {
var time = new Date();
var fiveDayWeatherToSave = new fiveDayModel( req.body );
console.log('post in the routing file was fired at: ');
console.log(time);
fiveDayWeatherToSave.save(function (err, data) {
if (err) console.log(err);
else console.log('Saved ', data );
});
});
来自节点的日志:
节点日志很有趣:第一次保存数据时没有POST行,但无论如何都保存了数据。
post in the routing file was fired at:
Wed May 13 2015 14:40:06 GMT+0100 (GMT Daylight Time)
Saved { __v: 0, city: 'One', _id: 55535436f0ee99bc1d790220 }
POST /fiveDay/ - - ms - -
post in the routing file was fired at:
Wed May 13 2015 14:42:06 GMT+0100 (GMT Daylight Time)
Saved { __v: 0, city: 'One', _id: 555354aef0ee99bc1d790221 }
POST /fiveDay/ - - ms - -
如果由于超时而失败,浏览器将重试请求。由于您从未 return 回复,所以这种情况总是会发生。您应该使用 res.end()
或 res.send("success!")
.