我正在尝试创建一个按钮,通过访问URL字符串来拨打IP电话:
http://admin:password@192.168.0.20/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789
直接进入浏览器时,页面返回1并拨打IP电话。
在我的网站上,我可以创建一个简单的链接,点击后,在新窗口中访问此页面。
有没有办法在没有用户看到它打开的情况下访问此页面?
答案 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");