我正在开发Chrome/Chromium扩展程序,该程序将从学校系统中读取学校成绩与成绩。问题是该网站不记得登录的用户。正因为如此,我无法使用AJAX。用Chrome扩展程序登录网站,并从中获取数据
只有当我登录到其他选项卡上的该页面时。但我想在后台自动登录到该页面。解决方案可能是iframe标签,但Chrome/Chromium不允许我读取和操作iframe内容。是否有任何解决方案如何在页面中作为登录用户操作?谢谢
我正在开发Chrome/Chromium扩展程序,该程序将从学校系统中读取学校成绩与成绩。问题是该网站不记得登录的用户。正因为如此,我无法使用AJAX。用Chrome扩展程序登录网站,并从中获取数据
只有当我登录到其他选项卡上的该页面时。但我想在后台自动登录到该页面。解决方案可能是iframe标签,但Chrome/Chromium不允许我读取和操作iframe内容。是否有任何解决方案如何在页面中作为登录用户操作?谢谢
您可以通过背景页面模拟通过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的持续会话和饼干,所以它像手动登录(如果你现在在打开你的网站浏览器你应该登录)。
如何使用cURL将用户隐藏地登录到系统中,然后从JSONP调用中返回结果?
是的,这将是个好主意,但我如何从扩展中运行cURL? – 2011-03-20 06:05:21
设置对服务器端脚本的AJAX调用? – BenM 2011-03-20 11:19:47
我可以看到,我对这次讨论的时间已经很晚了,但我只是想问一下,如果以这种方式发送登录数据是否存在安全隐患。 – 2014-04-08 15:14:35