簡體   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