Ionic 2 中 GET 请求的 401 未授权错误?
401 Unauthorized error for GET request in Ionic 2?
我有以下获取请求。但它给出 401 Unauthorized
错误。
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
this.http.get(urgentPostURL + encodeURIComponent(this.urgentpost.comment))
.map((res:Response) => res.json())
.subscribe(data => {
this.result = data;
console.log('UrgentPost Result : ' + this.result.Success);
if (this.result.Success == true) {
console.log("SUCESSS");
} else {
console.log("FAILED");
}
},err => console.error(err),() => console.log('done'));
我哪里做错了?
已编辑
更新为以下代码后,我仍然收到 401:
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
headers.append('Authorization', 'Basic ' + btoa("123" + ':' + "123"));
this.http.get(urgentPostURL + encodeURIComponent(this.urgentpost.comment), { headers: headers })
.map((res:Response) => res.json())
.subscribe(data => {
一般:
Request Method:GET
Status Code:401 Unauthorized
回应headers:
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:0
Date:Tue, 23 Feb 2016 11:26:17 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
Set-Cookie:ARRAffinity=6e6dd0608a0902ef40a800ab07ee37397d7b6cfbd85cf3dea254a7115d365bc1;Path=/;Domain=sd.sddd.net
WWW-Authenticate:Basic
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
请求headers:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Authorization:Basic MDAwMDAwMDoxMjM0NTY3OA==
Connection:keep-alive
Content-Type:application/json;charset=UTF-8
Host:sd.sddd.net
Origin:http://localhost:8100
Referer:http://localhost:8100/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
服务器好像需要认证。您没有为调用定义 Authorization
header。
这是 HTTP 基本身份验证的示例:
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
headers.append('Authorizcation', 'Basic '+btoa(username + ':' + password));
this.http.get(urgentPostURL + encodeURIComponent(
this.urgentpost.comment,
{ headers: headers })
.map((res:Response) => res.json())
(...)
不要忘记为您的请求指定 header 并导入 Headers
class。
我有以下获取请求。但它给出 401 Unauthorized
错误。
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
this.http.get(urgentPostURL + encodeURIComponent(this.urgentpost.comment))
.map((res:Response) => res.json())
.subscribe(data => {
this.result = data;
console.log('UrgentPost Result : ' + this.result.Success);
if (this.result.Success == true) {
console.log("SUCESSS");
} else {
console.log("FAILED");
}
},err => console.error(err),() => console.log('done'));
我哪里做错了?
已编辑
更新为以下代码后,我仍然收到 401:
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
headers.append('Authorization', 'Basic ' + btoa("123" + ':' + "123"));
this.http.get(urgentPostURL + encodeURIComponent(this.urgentpost.comment), { headers: headers })
.map((res:Response) => res.json())
.subscribe(data => {
一般:
Request Method:GET
Status Code:401 Unauthorized
回应headers:
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:0
Date:Tue, 23 Feb 2016 11:26:17 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
Set-Cookie:ARRAffinity=6e6dd0608a0902ef40a800ab07ee37397d7b6cfbd85cf3dea254a7115d365bc1;Path=/;Domain=sd.sddd.net
WWW-Authenticate:Basic
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
请求headers:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Authorization:Basic MDAwMDAwMDoxMjM0NTY3OA==
Connection:keep-alive
Content-Type:application/json;charset=UTF-8
Host:sd.sddd.net
Origin:http://localhost:8100
Referer:http://localhost:8100/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
服务器好像需要认证。您没有为调用定义 Authorization
header。
这是 HTTP 基本身份验证的示例:
var headers = new Headers();
headers.append('Content-Type': 'application/json;charset=UTF-8');
headers.append('Authorizcation', 'Basic '+btoa(username + ':' + password));
this.http.get(urgentPostURL + encodeURIComponent(
this.urgentpost.comment,
{ headers: headers })
.map((res:Response) => res.json())
(...)
不要忘记为您的请求指定 header 并导入 Headers
class。