google chrome extension 如何使用AJAX远程登录?,google-chrome-extension,javascript,jquery,ajax,google-chrome-extension,google Chrome Extension,Javascript,Jquery,Ajax,Google Chrome Extension" /> google chrome extension 如何使用AJAX远程登录?,google-chrome-extension,javascript,jquery,ajax,google-chrome-extension,google Chrome Extension,Javascript,Jquery,Ajax,Google Chrome Extension" />

google chrome extension 如何使用AJAX远程登录?

google chrome extension 如何使用AJAX远程登录?,google-chrome-extension,javascript,jquery,ajax,google-chrome-extension,google Chrome Extension,Javascript,Jquery,Ajax,Google Chrome Extension,我正在为某个网站制作一个应用程序,希望显示用户在该网站上收到的通知数量 目前,我使用ajax请求从网站/messages页面检索HTML,然后使用jQuery计算HTML中“#unread>li”元素的数量(每个元素代表一条新消息) 现在,我把这个数字显示在browser\u action图标上 所有功能都可以正常工作,通知的消息数量正确,但是用户必须登录到站点(不是我的站点)才能正常工作,否则他们会认为自己没有消息 我想我可以检测到用户是否登录,如果没有,则显示红色图标上的感叹号。然后,当用户

我正在为某个网站制作一个应用程序,希望显示用户在该网站上收到的通知数量

目前,我使用ajax请求从
网站/messages
页面检索HTML,然后使用jQuery计算HTML中
“#unread>li”
元素的数量(每个元素代表一条新消息)

现在,我把这个数字显示在
browser\u action
图标上

所有功能都可以正常工作,通知的消息数量正确,但是用户必须登录到站点(不是我的站点)才能正常工作,否则他们会认为自己没有消息

我想我可以检测到用户是否登录,如果没有,则显示红色
图标上的感叹号。然后,当用户单击以显示弹出窗口时,它会要求他们登录


您必须登录才能获取消息
用户名:
密码
“>

但是,我不知道如何使用这种方法让用户真正登录到网站:我如何发送凭据?或者网站必须支持这样的请求吗

太长,读不下去了
我如何才能让用户登录到我不远程拥有的网站?

免责声明:我从未做过google chrome扩展,但根据您的其余问题,它听起来像是与其他任何网页一样使用JavaScript,所以我会继续回答

在任何情况下,使用JavaScript处理Cookie都会有点痛苦:

我假设您的服务器端已经使用并需要cookie,因此我不会尝试建议任何替代方案。在这种情况下,您的服务器需要验证cookie,因此,IMHO,最好在服务器端设置cookie。如果服务器处理cookie,在JS端,您只需将用户名/密码发布到服务器sid例如,佩奇

$.post("/user/login",{"Username":"foo","Password":"bar"},callback);
该服务器端页面验证用户名/密码,如果成功,则生成cookie并将响应发送回JavaScript(例如{“issucess”:true})。在收到成功响应而不是错误后,您只需开始调用其他web服务来检索数据(假设您已登录并构建页面)

假设您的web服务将返回HTTP错误代码,以帮助您确定会话问题,如果您收到401错误代码,则会将用户带回登录页面。如果您收到403错误代码,则会让用户知道他们无法访问该数据…等等,这一切都取决于您的应用程序

最终,JavaScript不知道用户是否实际登录,因此您必须依靠服务器以可以理解的方式向您发送信息,以便您可以根据需要指导/提示用户

[编辑:2014-11-21]


你没有回答我的另一个问题:你得到了什么?如果他们没有在登录时自己设置cookie,那么你需要从他们发送的响应中获得会话令牌…如果他们没有向你发送会话ID,你就是SOL。如果他们确实向你发送了会话令牌/会话ID,那么你需要知道它的名称(例如,PHP使用类似PHPSESSID的东西作为cookie名称,但它可以是该域的编码人员决定的任何名称)。除此之外,您还必须能够为该域名设置cookie(第三方cookie)。根据用户的设置,这可能会产生不同的结果——如果他们阻止第三方cookie——但是,由于这是一个google扩展而不是一个网站,也许它能够绕过这种限制。我知道FireFox的开发者工具栏能够操作所有域的cookie,所以这是一个合理的假设也可以。

谢谢!这让我大开眼界!但问题是,我实际上并不拥有服务器。难道没有“注入”的方法吗"网页中的cookie?@theonlygusti,服务器实际上需要cookie或令牌吗?如果他们需要cookie,似乎很难相信他们不会自己创建cookie,因为他们必须验证用户身份。当你登录成功后,你会得到什么?你会得到令牌吗?你确定这应该是b吗e一个cookie,不在URL中(例如?token=XYZ)我百分之百确定这需要一个cookie。你的答案非常令人大开眼界,值得一提,信息量惊人!但在意识到cookie不起作用后,我想出了另一种方法。@theonlygusti,好的,很高兴你找到了答案。你应该将你的答案作为第二个答案输入,然后选择你自己的答案作为第二个答案正确选择一个,这样它就不会保持“未回答”。然后,下一个试图解决相同问题的人将能够从您的解决方案中学习。