javascript - 跨域访问 HikVision 摄像头快照 - 需要在经典的 asp/javascript 中以编程方式完成基本身份验证

标签 javascript html ajax asp-classic webcam

我有以下代码,一旦手动登录,将毫无问题地拉回相机图像。如何以编程方式登录相机?

<img src="http://<<IP ADDRESS HERE>>:881/Streaming/channels/201/picture?TheTimeIs=<%=request.querystring("Random")%>" 
    style="box-shadow: 10px 10px 10px #808080;border: 1px solid #484848;max-width:300px;max-height:250px;display:block;height:auto;width:auto;margin:auto;" 
    title="Current Camera Image at <%=now() %>" />

我尝试了一些Javascript AJAX,但由于跨域访问而失败。我无权访问摄像头服务器来启用 CORS。

这是我尝试过的 AJAX:

<script type="text/javascript">
function WebCamResults(intClass) {
    var xmlhttp;

    document.body.style.cursor = 'wait';
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.3.0");
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("WebCamResultDiv").innerHTML = xmlhttp.responseText;
            document.body.style.cursor = 'default';
            }
        }
    }
    xmlhttp.open("GET", "http://<<IP ADDDRESS HERE>>:881/Streaming/channels/201/picture", true, "admin", "12345");
    xmlhttp.withCredentials = true;
    xmlhttp.setRequestHeader("Access-Control-Allow-Origin", "*")
    xmlhttp.setRequestHeader("Authorization", "Basic YWRtaW46MTIzNDU=");
    xmlhttp.send();
}
</script>

<div id="WebCamResultDiv" style="display:inline;">
</div>
<hr />
<input type="button" value="Refresh Image JS" onclick="WebCamResults();" />

救命!

最佳答案

在 HTML 文件中直接从 IP 摄像机捕获图像

<img name="img1" style="-webkit-user-select: none; cursor: zoom-in;" src="http://username:password@cameraip/Streaming/channels/1/picture?videocodec=jpeg" width="200" height="200">

使用 PHP 复制并保存特定位置

$文件='http://username:password@cameraip/Streaming/channels/1/picture?videocodec=jpeg '; $newfile = 'FileUpload/WBcam1/'.$fnm3.'.jpeg';

if (!copy($file, $newfile)) { echo "复制$文件失败...\n"; }else{echo "复制 $newfile 失败...\n";}

请检查它在不同浏览器中的工作情况是否不同。

关于javascript - 跨域访问 HikVision 摄像头快照 - 需要在经典的 asp/javascript 中以编程方式完成基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33045614/

相关文章:

javascript - 使用hibernate spring mvc检测数据库中的行

javascript - 如何计算 z 轴上的位置

css - 什么可以使复选框不显示在页面上?

javascript - 在 jQuery 中几秒后显示和隐藏 div

Javascript:触发一个在几秒钟内发生的事件,但如果发生另一个事件,能够取消该事件吗?

javascript - 如何使用 ajax/javascript 在表单中附加文本?

javascript - 使用ajax检索数据网格

html - 输入类型 DateTime - 值格式?

javascript - JSF 在 onClick 事件之前执行 Ajax

javascript - JS - Canvas - 同时在两个 Canvas 上绘制 - ?馈送两个变量?