如何从jQuery访问启用SSL的WCF服务?

时间:2012-10-01 14:07:38

标签: jquery wcf

我想从asp.net 2.0应用程序访问启用SSL的WCF服务。站点在IIS 7上托管。

以下是代码

function getCourse() {
    $.ajax({
        type: "GET",
        url: "https://website.com/service.svc/task",
        processData: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 7000,
        username: "someusername",
        password: "somepassword",
        success: function (data) { alert("success"); },
        error: function (xhr, status, error) { alert("error"); }
    });
};

我收到401错误,我没有在与ssl访问相关的iis或webconfig中进行任何配置?我在这里错过了什么吗?或者我正在使用asp.net 2.0应用程序导致错误?

1 个答案:

答案 0 :(得分:0)

我想你可能需要在你的jquery ajax函数中添加额外的头文件,比如下面一个:

headers: { 
    Authenticate: Basic username:password (to base64)
}

beforeSend: setHeaders

function setHeader(xhr) {
    xhr.setRequestHeader('Authorization', 'Basic base64.encode(username:password)');
}

根据Wiki,401 Unauthorized被定义为

  

类似于403 Forbidden,但专门用于身份验证时使用   是必需的,但已经失败或尚未提供。

     

响应必须包含 WWW-Authenticate标头字段   包含适用于所请求资源的挑战。见基本   访问身份验证和摘要访问身份验证。

参考 HTTP状态代码:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
基本访问身份验证:http://en.wikipedia.org/wiki/Basic_access_authentication