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

相关问题