2016-06-24 4 views
0

私は非常にJavaスクリプトの新機能です。だから、それはノブの質問かもしれません。私はIPにいくつかのパラメータを持つGETリクエストを送信したい何かを押すと 21.81.91.103:8945JavaScriptがなぜGETリクエストに%3を追加するのですか?

私は自分のコンピュータ上にページを持っているが、アクセスすることができます。私は使用してきました:

window.location.host を私も試してみました:window.location.hostname + \":\" + location.port

リクエストが送信され、いくつかの理由から: %321.81.91.103:8945

私は%3から見当がつかないから来た。

関連するコードスニペットがある:クロームコンソールでwindow.location.host私は(%3なし)正しい結果を得る:

function callURL() 
    { 
    $.get(window.location.hostname , { red: $("#red").slider("value"), green : $("#green").slider("value"), blue: $("#blue").slider("value")}); 
    } 

もう一つの興味深い事実は、私は、ページ、およびタイプをロードするときです。

それが助け場合は、こちらのページを見ることができます: https://jsfiddle.net/bzx0h06o/4/

+0

奇妙です。私はconsole.log( 'window.location.hostname')を使い始める前に、それがうまく見えるかどうかを見ることから始めます。 – dlsso

答えて

2

をURLがプロトコルで開始または「/」していない場合、それは相対URLとして扱われます。 http://example.comにいる場合は、window.location.hostnameは「example.com」に、「example.com」をリクエストすると「http://example.com/example.com」に解決されます。

function callURL() { 
    $.get("/", { red: $("#red").slider("value"), green : $("#green").slider("value"), blue: $("#blue").slider("value")}); 
} 
0

% 3パーセントエンコード桁2(「%32 『)実際には:ちょうど』 http://example.com」に解決され、「/」の代わりに要求を行います。 %32 1.81.91.103:8945は、 1.81.91.103:8945にデコードします。

しかし、最初の文字(最初の文字のみ)がエンコードされている理由はわかりません。

関連する問題