从浏览器调用客户端URL而不打开新页面

时间:2014-10-24 20:33:34

标签: javascript html asp.net client-side

我正在尝试创建一个按钮,通过访问URL字符串来拨打IP电话:

http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789

直接进入浏览器时,页面返回1并拨打IP电话。

在我的网站上,我可以创建一个简单的链接,点击后,在新窗口中访问此页面。

有没有办法在没有用户看到它打开的情况下访问此页面?

3 个答案:

答案 0 :(得分:6)

当然可以使用AJAX调用:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    var response = xmlhttp.responseText; //if you need to do something with the returned value
  }
}

xmlhttp.open("GET","http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789",true);
xmlhttp.send();

jQuery让这更容易:

$.get("http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789")

编辑:由于您在跨域旅行并且无法使用CORS,因此您可以使用javascript打开链接,并立即关闭窗口。示例如下:

document.getElementById("target").onclick = function(e) {
    var wnd = window.open("http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789");
    wnd.close();
    e.preventDefault();
};

答案 1 :(得分:2)

您将使用XMLHttpRequest

function dialResponse() {
 console.log(this.responseText);//should be return value of 1
}

var oReq = new XMLHttpRequest();
oReq.onload = dialResponse;
oReq.open("get", "http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789", true);
oReq.send();

这将是半隐藏的。但是,它仍然是客户端发出的,因此他们会看到它出现在网络记录中。如果你想要真正隐藏它,你必须在服务器端做它。

答案 2 :(得分:0)

此javascript将在后台调用它而不显示任何内容:

<script src="javascript">
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789", true);
xhttp.send();
<script>

当然,如果您分析该站点,它将在控制台中仍然可见。如果要调用它而无需跟踪,可以使用类似PHP的服务器端脚本:

<?php
$response=file_get_contents("http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789");