CNode

win7下Nodejs得不到完整req.url

Yyunfengcao发布于13 年前最后回复13 年前3 回复13382 浏览0 收藏

1、最简单的例子代码 test.js:

2、在你的Win7安装路径下找到hosts(例如:C:\Windows\System32\drivers\etc\hosts),加入以下两行:

3、运行test.js

4、在浏览器中尝试以下url:

你会发现,3个url都可以得到响应,但console中输出的hostname、port、protocol全都是null。 为什么呀?! 在WinXP下没这问题呀! 有别人遇到同样问题吗? 有什么设置可以解决吗?

查看回复

回复 (3)

H
huanghaiyang#1·13 年前

貌似不是req.url orginalUrl好像叫这个

Y
yunfengcao#2·13 年前

解决了: 用Node本身的 req.headers.host 或者 Express提供的 req.host, req.protocol 可以得到有意义的值。 req.url 和 req.orginalUrl 都不包含protocol、hostname、port,Win7下与WinXP下是一样的。

A
ayanamist#3·13 年前

本来req.url里就不会有你要的那些信息,自己去读读HTTP协议规范就知道了,req.url其实不是你想象的url

参与回复
登录后即可参与回复。登录