如果我在Javascript中使用相对路径从服务器获取页面(在div中显示输出),Javascript是否使用与加载页面相同的协议/端口?
例如:
请求父页面https://www.foo.com/bar.php
bar.php上的JS代码:
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);
由于在端口443上使用https请求和提供父页面,这是否意味着JS将使用相同的协议和端口将GET请求发送到新页面?或者它会在端口80上通过http发送请求,因为我没有在'turl'变量中指定连接协议吗?
答案 0 :(得分:6)
它将使用相同的端口和协议,因为您尚未指定任何其他内容。您的网址是RFC-speak中的相对参考,详情请参见Section 4.2 of the RFC。 (我只是碰巧知道RFC部分参考,因为我最近发现了关于http / https的this nifty trick内容。)
所以你的要求
/new_dir/index.php?r=blah
相对于文件
http://www.foo.com/bar.php
解析为
http://www.foo.com/new_dir/index.php?r=blah