我想从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应用程序导致错误?
答案 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