我试图创建一个按钮,通过访问一个URL字符串来拨打IP电话。
http://admin:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789
当直接进入浏览器时,页面返回一个1,然后拨打IP电话。
在我的网站上,我可以创建一个简单的链接,当点击时,在一个新窗口中访问这个页面。
有没有什么方法可以在访问这个页面的时候,不让用户看到它打开了?
当然,你可以使用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:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789",true);
xmlhttp.send();
jQuery 使得这一点更加容易。
$.get("http://admin:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789")
编辑:因为你是跨域旅行,不能使用CORS,你可以使用javascript打开链接,他们立即关闭窗口。下面的例子。
document.getElementById("target").onclick = function(e) {
var wnd = window.open("http://admin:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789");
wnd.close();
e.preventDefault();
};
你会使用一个 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:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789", true);
oReq.send();
这将是半隐藏的。然而,它仍然是在客户端发出的,所以他们会在网络记录中看到它的发生。如果你想让它真正的隐藏,你必须在服务器端进行。
这个javascript会在后台调用它而不显示任何东西。
<script src="javascript">
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "http://admin:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789", true);
xhttp.send();
<script>
当然,如果你分析网站的话,它仍然会在控制台显示出来。如果你想无痕调用它,你可以使用像PHP这样的服务器端脚本。
<?php
$response=file_get_contents("http://admin:[email protected]/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0123456789");