[英]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標頭。
您是否嘗試過.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.