使用带有摘要身份验证、jquery ajax 调用的 RestFul PHP Web 服务

Posted

技术标签:

【中文标题】使用带有摘要身份验证、jquery ajax 调用的 RestFul PHP Web 服务【英文标题】:Consume RestFul PHP webservice with digest auth, jquery ajax call 【发布时间】:2012-06-27 19:04:36 【问题描述】:

我想知道如何使用摘要认证调用 RestFul php 网络服务?

当我创建基本请求时,服务器需要身份验证,但我不知道如何发送用户名和密码。我需要这个用于 phonegap 应用程序。

$.ajax(
    type: "GET",
    url: "http://webservice",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) 
        alert(msg);
    

);

谢谢,

【问题讨论】:

【参考方案1】:

调用$.ajax时使用data参数

$.ajax(
    type: "GET",
    url: "http://webservice",
    data: username:'Your Username', password:'Your Password',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) 
        alert(msg);
    
);

【讨论】:

这不起作用。为我的身份打开一个提示窗口。 Data 仅提供添加到 URL 的参数。你可以试试"http://username:password@webservice" 作为 URL。 @tilix,rjmunro 关于如何处理 HTTP Auth 屏障是正确的。通过摘要身份验证,我认为您的意思是需要将摘要作为参数提供。但是,一些 RESTful API 要求将其作为标头传递。除非您提供有关 API 规范的更多信息,否则无法知道这一点。

以上是关于使用带有摘要身份验证、jquery ajax 调用的 RestFul PHP Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX、JQuery、Apache 和基本身份验证的跨源请求

使用 jQuery/ajax 的基本身份验证

是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?

更改 Restlet 发回的状态码以进行身份​​验证

如何使用jQuery和Ajax对DreamFactory进行基本身份验证

在 Internet Explorer 上使用 Windows 身份验证通过 SSL 进行跨域 ajax 调用失败