9

我正在開發Chrome/Chromium擴展程序,該程序將從學校系統中讀取學校成績與成績。問題是該網站不記得登錄的用戶。正因爲如此,我無法使用AJAX。用Chrome擴展程序登錄網站,並從中獲取數據

只有當我登錄到其他選項卡上的該頁面時。但我想在後臺自動登錄到該頁面。解決方案可能是iframe標籤,但Chrome/Chromium不允許我讀取和操作iframe內容。是否有任何解決方案如何在頁面中作爲登錄用戶操作?謝謝

回答

9

您可以通過背景頁面模擬通過javascript提交的表單。首先,您需要仔細檢查通過登錄表單發送了哪些數據以及哪些URL(在發送之前可以使用JavaScript更改表單,因此您需要知道實際發送的內容,而不僅僅是<form>元素中的內容)。您可以使用Chrome的控制檯進行簡單的操作,如果瀏覽器不夠用,那麼Firefox有Tamper Data plugin,對於核心流量檢測,您可以使用Wireshark分析儀。

然後在後臺頁面(我在這裏使用jQuery):

$.ajax({ 
    url: "https://login_form.html", 
    type: "GET", 
    dataType: "html", 
    success: function() { 
     $.ajax({ 
      url: "https://login_form_submits_to.html", 
      type: "POST", 
      data: { 
        "username": "username", 
        "password": "password", 
        "extra_field": "value" 
      }, 
      dataType: "html", 
      success: function(data) { 
        //now you can parse your report screen 
      } 
     }); 
    } 
}); 

好處是,Chrome的持續會話和餅乾,所以它像手動登錄(如果你現在在打開你的網站瀏覽器你應該登錄)。

+2

我可以看到,我對這次討論的時間已經很晚了,但我只是想問一下,如果以這種方式發送登錄數據是否存在安全隱患。 – 2014-04-08 15:14:35

0

如何使用cURL將用戶隱藏地登錄到系統中,然後從JSONP調用中返回結果?

+1

是的,這將是個好主意,但我如何從擴展中運行cURL? – 2011-03-20 06:05:21

+0

設置對服務器端腳本的AJAX調用? – BenM 2011-03-20 11:19:47

相關問題