繁体   English   中英

使用AJAX / jQuery在IP摄像机上进行HTTP基本授权

[英]HTTP Basic Authorization on IP Camera using AJAX / jQuery

我知道这个问题之前曾被问过很多次,但似乎没有一个答案对我有用,所以这是我的问题:

我在Intranet中有一个Sony IP摄像机。 我正在建立一个使用PHP / MySQL身份验证的网站,供内部用户查看MJPEG流,但相机本身需要http身份验证。 我不想让用户输入用户名和密码来登录摄像头页面,然后不得不键入http身份验证凭据(在弹出窗口中)以查看流。 我尝试使用jQUERY将标头更改为无济于事。 请记住,摄像机必须具有其自己的身份验证,以便用户不能只是随机输入IP并查看流。 我希望能够控制谁查看内容和时间。

我假设如果用户登录页面时进行正确的身份验证调用,则该摄像头将对他们可用,因为他们将“无声地”登录。而且,如果我从带有--headers的终端使用wget :“ 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标头时:

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

发生错误是因为我试图在XMLHttpRequest.open()方法之前设置HTTP标头。

资料来源: http : //www.webmasterworld.com/forum91/4542.htm

您是否尝试过.ajax中的用户名和密码字段?

$.ajax({
    url: "http://mydomain/mypage.php",
    username: "myUsername",
    password: "myPassword",
    error: function () {
    }
}).done(function(html) {
        //Do Stuff
});

在类似的情况下,这对我有用。

如果您的意思是div.log不显示“ ok”消息,则可能是因为您的DOM代码不正确。 这个:

$("div.log").attr("innerHTML", "ok");

设置div的DOM属性,而不是其实际的innerHTML 相反,您应该执行以下操作:

$("div.log").html("ok");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM