为什么JavaScript向我的Get请求增加%3



我对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。

,但我不知道为什么编码第一个字符(并且只有第一个字符)。

最新更新