Javascript & https - объект XMLHttpRequest для относительного пути GET - протокол / порт «унаследован»? - PullRequest
6 голосов
/ 03 февраля 2011

Если я использую относительные пути в Javascript для получения страницы с сервера (для отображения вывода внутри div), использует ли Javascript тот же протокол / порт, что и страница, на которой он был загружен?

Например:

запрашивается родительская страница https://www.foo.com/bar.php

JS-код на bar.php:

var turl = "/new_dir/index.php?r="+r;
if(window.XMLHttpRequest){  
    xmlhttp=new XMLHttpRequest();
}else{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",turl,false);
xmlhttp.send(null);

Поскольку родительскийстраница была запрошена и обслужена с использованием https через порт 443. Означает ли это, что JS отправит запрос GET на новую страницу с использованием того же протокола и порта?Или он отправит запрос через http на порт 80, поскольку я не указал протокол соединения в переменной 'turl'?

1 Ответ

6 голосов
/ 03 февраля 2011

Он будет использовать тот же порт и протокол, поскольку вы ничего не указали.Ваш URL является относительной ссылкой на языке RFC, подробности в Разделе 4.2 RFC .(Я знаю только ссылку на раздел RFC, потому что я недавно узнал о этом изящном приеме для http / https.)

Итак, ваш запрос на

/new_dir/index.php?r=blah

относительно документа

http://www.foo.com/bar.php

разрешается до

http://www.foo.com/new_dir/index.php?r=blah
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...