我知道这个问题之前被问过很多次,但似乎没有一个回答对我有用,所以这是我的问题:
我在内联网中有一台 Sony IP 摄像机。我正在为内部用户构建一个具有 PHP/MySQL 身份验证的站点,以便能够查看 MJPEG 流,但相机本身需要 http 身份验证。我不想让用户输入他们的用户名和密码来登录相机页面,然后必须键入 http 身份验证凭据(在弹出窗口中)才能看到流。我尝试使用 jQUERY 更改 header 无济于事。请记住,摄像机必须有自己的身份验证,这样用户就不能随便输入 IP 就可以看到流。我希望能够控制谁查看什么内容以及何时查看。
我假设如果我在用户登录页面时进行了正确的身份验证调用,那么他们将可以使用该相机,因为他们会“静默”登录。另外,如果我从终端使用 wget 和--headers: "Authorization: blah_Blah"它确实有效,但我不能从 jQuery 做到这一点!这是我的代码:
$.ajax({
url : "http://some_ip_internally_for_the_cam/some_page_on_cam_that_needs_authentication_to_access_otherwise",
method : 'GET',
beforeSend : function(req) {
req.setRequestHeader('Authorization', "some_base_64_stuff_that_works_in_wget");
},
success: function() {
$("div.log").attr("innerHTML", "ok");
}
});
这会在用户登录后立即加载。
有什么建议吗?
最佳答案
我在 Firefox 中遇到了同样的 Javascript 错误:
... 0x804b000f (NS_ERROR_IN_PROGRESS) [nsIXMLHttpRequest.setRequestHeader] ...
当我试图在一些 XMLHttpRequest 中设置一个新的 HTTP header 时对象:
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
发生错误是因为我试图在 XMLHttpRequest.open() 方法之前设置 HTTP header 。
关于javascript - 使用 AJAX/jQuery 在网络摄像机上进行 HTTP 基本授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137521/