我对Java脚本非常新鲜,所以这可能是个烟熏问题。
我的计算机上有一个页面,可以通过:21.81.91.103:8945
当我按某些内容时,我想向IP发送带有某些参数的获取请求。所以我用过:
window.location.host
我也尝试了: window.location.hostname + ":" + location.port
由于某种原因,请求发送到:%321.81.91.103:8945
我不知道%3来自何处。
相关代码段为:
function callURL()
{
$.get( window.location.hostname , { red: $( "#red" ).slider( "value" ), green : $( "#green" ).slider( "value" ), blue: $( "#blue" ).slider( "value" )});
}
另一个有趣的事实是,当我加载页面时,键入:window.location.host
在Chrome Console中我得到正确的结果(没有%3)。
您可以在此处查看该页面是否有帮助:https://jsfiddle.net/bzx0h06o/4/
如果URL不以协议或'/'开头,则将其视为相对URL。如果您在http://example.com上,则window.location.hostname
等于" example.com",并要求" example.com"请求" http://example.com/example.com"。。只需要求"/"请求,它将解决" http://example.com":
function callURL() {
$.get("/", { red: $( "#red" ).slider( "value" ), green : $( "#green" ).slider( "value" ), blue: $( "#blue" ).slider( "value" )});
}
%3实际上是一个百分比编码的数字2("%32")。%32 1.81.91.103:8945解码为 2 1.81.91.103:8945。
,但我不知道为什么编码第一个字符(并且只有第一个字符)。