瀏覽器請(qǐng)求的'/'的時(shí)候,假如服務(wù)器重定向到'/test',這個(gè)時(shí)候請(qǐng)求'/test'的headers里面會(huì)有referer嗎?為什么?怎樣可以讓瀏覽器帶上?var express = require('express')
, http = require('http')
, path = require('path');var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 8888);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', function(req, res, next) {
res.redirect('/test');
});
app.get('/test', function(req, res, next) {
res.send(req.headers);
});
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});返回:{
host: "localhost:8888",
connection: "keep-alive",
user-agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4", accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", accept-encoding: "gzip,deflate,sdch", accept-language: "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4", accept-charset: "UTF-8,*;q=0.5",
cookie: "nd_secret=44f180cce9c8e88023d056a4b6a06a116d81dbf0de5c95349100946a3d6fbc294826df4b1bc4b5ba30927fb7002bd427; connect.sid=s%3A0ajlt%2FaQVFfX%2Fn%2F7Bi%2Ffa%2B9z.3z9KvkiqVTozWD%2BMIm8XOOwzoINHTATA0pH7sYOeM7o"}
2 回答

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
和瀏覽器版本有關(guān)系,標(biāo)準(zhǔn)也并沒有對(duì)此做出說明。
所以最好不要依賴referer,這也是為什么很多網(wǎng)站都會(huì)將源地址當(dāng)作參數(shù)傳過去。

桃花長相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
正確的做法是重定向時(shí)用/?from=/test
這樣的地址。瀏覽器的行為沒有辦法確定,況且還不一定是瀏覽器在發(fā)起HTTP請(qǐng)求,如果是搜索引擎spider或命令行的腳本呢?
- 2 回答
- 0 關(guān)注
- 235 瀏覽
添加回答
舉報(bào)
0/150
提交
取消