2012-02-16 49 views
3

我是新来的这个REST风格的web服务的东西,所以我问你是否可以帮助我与这一个。我需要使用jquery从REST风格的webservice检索数据

我需要使用jquery从restful webservice中检索数据。现在我知道我可以使用$ .ajax或$ .getJSON来做到这一点,但问题是如果我的宁静Web服务需要输入用户名和密码以检索数据,我该如何做到这一点。谢谢

回答

2

这取决于您的Web服务如何进行身份验证。

如果它是基于令牌的(通过cookie或其他),您需要调用服务的登录方法,获取令牌(或cookie等),并将该令牌发送给您未来的请求。

其他方法需要其他调整;认证头文件等。除非我们知道服务使用什么认证方法,否则我们无法告诉您需要什么。

+0

对不起,我忘了告诉你,我需要把用户名和密码放在标题中。所以基本上我认为它的身份验证头。对不起,我对这个比较陌生。 – jongbanaag 2012-02-16 02:15:09

+0

然后,您必须查找规范以找到需要发送的任何头文件,并使用$ .ajax()的“headers”参数将其设置为适当的(http://api.jquery.com/jQuery。 AJAX /) – jvenema 2012-02-16 14:44:41

1

如果你必须去一个页面,键入用户名和密码,然后才能得到你的数据,那么它不会工作。如果是这样的话,这根本不是服务。并非每个页面都可以通过AJAX调用;通常他们不能在设计时考虑到AJAX。 “REST”并不意味着您可以通过AJAX有效地调用任何现有页面。这是一种使用标准URI和HTTP进行通信的服务,而不是SOAP等(这是一个巨大的简化,但并不是一个糟糕的开始。)

您是否在控制此“服务”?如果是这样,您可以:

  • 重写它,以便它将接受用户名/密码作为查询字符串参数。或者,
  • 假设它位于页面来自AJAX发生位置的同一站点上,您是否可以将用户的会话凭据保存在cookie中?在许多框架(我的案例中的.NET)框架可以帮助你做到这一点,这是相对容易的。在我刚刚部署的站点中,遍布着REST AJAX,我不会对用户名/密码做任何事情。如果可能的话,只要先处理好。

顺便说一下,您使用的是SSL? (也就是说,您要访问的网站,ajax或其他网站,以https开头?)

+0

输入用户名/密码(因此,可能使用cookie进行身份验证)与某项服务是否是服务无关。 – jvenema 2012-02-16 01:48:42

+0

@jvenema不太确定你在说什么。这个场景对你来说是有意义的,一个页面通过ajax调用一个服务,并且作为ajax服务调用的一部分*在他们的用户名和密码中调用人类类型?不是我。实际上不可能。我的猜测是,OP刚刚开始进入AJAX-REST领域,并试图弄清楚一些基本的东西。我并不是100%确定我给了他/她最好的想法,以帮助他/她过去一些误解,但我最好猜测。 – 2012-02-16 13:57:47

1

理想情况下,您将拥有某种API密钥或会话密钥。

否则,您可以将它们作为参数传递给调用。只是蕾妮,他们不再安全。

1

您可以使用更复杂但更通用的ajax()函数,它以用户名和密码作为参数。但请注意,您的用户将能够在来源和请求中看到用户名和密码,因此这会损害您帐户的安全性。