【发布时间】:2011-11-15 14:03:35
【问题描述】:
我知道这个问题之前被问过很多次,但似乎没有一个回答对我有用,所以这是我的问题:
我有一个位于 Intranet 中的 Sony IP 摄像机。我正在为内部用户构建一个带有 PHP/MySQL 身份验证的站点,以便能够查看 MJPEG 流,但相机本身需要 http 身份验证。我不想让用户输入他们的用户名和密码来登录相机页面,然后必须输入 http 身份验证凭据(在弹出窗口中)才能看到流。我尝试使用 jQUERY 更改标题无济于事。请记住,摄像机必须有自己的身份验证,以便用户不能只是随机输入 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");
}
});
用户登录后立即加载。
有什么建议吗?
【问题讨论】:
-
请展示“some_base_64_stuff_that_works_in_wget”的例子。
-
说到火狐的同源策略,是不是意味着它可以在IE上运行?
-
在 wget 中工作的 base 64 示例是:“YWRtaW46YtRtaW3="
标签: javascript jquery ajax http authentication