2016-02-23 5 views
1

У меня есть запрос ниже. Но это дает ошибку 401 Unauthorized.401 Несанкционированная ошибка для запроса GET в Ionic 2?

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 

заголовки отклика:

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 

заголовков запроса:

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 

ответ

2

Я, кажется, что сервер требует аутентификации. Вы не определили заголовок Authorization для своего вызова.

Вот пример для базовой аутентификации 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()) 
    (...) 

Не забудьте указать ваши заголовки для вашего запроса и импортировать Headers класс.

+0

Спасибо Тьерри. У меня успешный статус (200k), но он вызывает эту ошибку. «XMLHttpRequest не может загружать« my_url ». Поле заголовка запроса. Авторизация не допускается с помощью Access-Control-Allow-Headers в предполетном ответе». и это мои импорт: import 'rxjs/add/operator/map'; импорт {Http, Headers} из 'angular2/http'; – happycoder

+0

Отлично! Что у вас есть в 'Access-Control-Allow-Headers'? Отвечает ли запрос предполетного запроса (запрос OPTIONS) 'Access-Control-Allow-Credentials: true'? –

+0

См. Этот ответ: http://stackoverflow.com/questions/34916623/angular2-http-request-not-able-to-add-headers/34917039#34917039 –

Смежные вопросы