documentation에 따라 Google OAuth2 토큰 확인 요청을 보낸 후 JSON 응답 데이터를 읽는 데 문제가 있습니다.토큰을 확인하는 데 도움이 필요합니다. JSON 응답 데이터를 읽을 수 없습니다.
data.audience; // undefined
data.scope; // undefined
data.userid; // undefined
data.expires_in; //undefined
이 무엇 JSON 응답 데이터입니다 : 내가 JSON 응답 데이터 객체가 나는 다음과 같은 얻을 검사 그래서
$http.get('https://www.googleapis.com/oauth2/v1/tokeninfo', {params: {access_token: accessToken.token}})
.success(function (data, status, headers, config) {
$log.info("sendValidationRequest() method: data: " + data);
deferred.resolve(data);
accessToken.state = getSession().state = $window.sessionStorage.state = "AccessTokenValidated";
})
.error(function (data, status, headers, config) {
//handle error
});
: 여기
는 구글 OAuth2를 토큰 검증 요청입니다 크롬 개발자 도구의 내부 모습 :

나는 expec JSON 응답 데이터를 documentation 당 JSON 배열로 지정합니다. JSON 응답 데이터가 인코딩 된 것으로 보입니다. 어떻게 해결할 수 있습니까? 내 문제 해결에 어떤 도움이 많이 감사합니다
HTTP/1.1 200 OK
status: 200 OK
version: HTTP/1.1
access-control-allow-origin: http://localhost:8080
access-control-expose-headers: Cache-Control,Content-Encoding,Content-Length,Content-Type,Date,Expires,Pragma,Server
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-encoding: gzip
content-length: 182
content-type: application/json; charset=UTF-8
date: Sat, 17 Aug 2013 08:00:05 GMT
expires: Fri, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
server: GSE
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
:
GET https://www.googleapis.com/oauth2/v1/tokeninfo?
access_token=ya29.AHES6ZQBj6feCrXuDoqwA3FpX1T1HO8fH1eWegJbiBTp7Cs HTTP/1.1
:host: www.googleapis.com
origin: http://localhost:8080
accept-encoding: gzip,deflate,sdch
accept-language: en-US,en;q=0.8
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
:path: /oauth2/v1/tokeninfo? access_token=ya29.AHES6ZQBj6feCrXuDoqwA3FpX1T1HO8fH1eWegJbiBTp7Cs
accept: application/json, text/plain, */*
:version: HTTP/1.1
referer: http://localhost:8080/calendar-app/
:scheme: https
:method: GET
여기 내 HTTP 응답 헤더는 다음과 같습니다
여기 내 HTTP 헤더 요청입니다.
감사합니다.
몇 가지 조사를 한 후에 AngularJS $ http 서비스와 관련된 문제가 있음을 발견했습니다. 이것은 JQuery에서 문제가되지 않기 때문입니다. 여기 내 유효성 검사 액세스 토큰 코드 JQuery와의 모습입니다 :
function validateToken() {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' + accessToken,
data: null,
success: function(response){
console.log('Our token is valid. and response.audience value is defined.');
},
error: function(error) {
console.log('Our token is not valid....');
},
dataType: "jsonp"
});
}
JQuery와 아약스 요청 헤더 (위 참조) 다른 요청 헤더가 $ HTTP 서비스 요청 헤더 다를 수 있습니다
GET https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.AHES6ZTewZF3-aEJ3p8mdJahvTtZDNELYjpqLsGaB10Fnmk&callback=jQuery172036758901784196496_1376731301308&_=1376731301856 HTTP/1.1
:host: www.googleapis.com
accept-encoding: gzip,deflate,sdch
accept-language: en-US,en;q=0.8
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
:path: /oauth2/v1/tokeninfo?access_token=ya29.AHES6ZTewZF3-aEJ3p8mdJahvTtZDNELYjpqLsGaB10Fnmk&callback=jQuery172036758901784196496_1376731301308&_=1376731301856
accept: */*
:version: HTTP/1.1
referer: http://localhost:8080/calendar-app/google-oauth-test2.html
:scheme: https
:method: GET
의 요청이 $ HTTP 서비스에서 발급 한 때 구글 응답 헤더가 다른 회전 (위 참조) :
HTTP/1.1 200 OK
status: 200 OK
version: HTTP/1.1
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-encoding: gzip
content-length: 235
content-type: text/javascript; charset=UTF-8
date: Sat, 17 Aug 2013 09:21:40 GMT
expires: Fri, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
server: GSE
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
, 이제 AngularJS $ http 서비스 요청 헤더를 JQuery의 AJAX 요청 헤더가 어떻게 생겼는지와 어떻게 비교할 수 있을까요? 또는 동일한 결과를 얻는 다른 방법이 있습니다. 성공적인 액세스 토큰 유효성 검사 후 적절한 JSON 배열 객체를 Google에서 다시 가져 오는 것입니다.
다시 말하지만, 이것에 대한 도움은 매우 감사하겠습니다!
URL에 공백이 있는지 그리고 원시 JSON 응답을 표시하지 않는지에 대한 질문이 있으니 게시를 업데이트하고 있습니다. 크롬 개발자 도구에서 가져온이 그림이이 부분을 없애기를 바랍니다.
HTTP 응답 페이로드는 무엇입니까? 원시 JSON 응답입니다. – mariuss
나는 첫 번째 사진에 응답 탭을 보여준다. 이미 포함 된 내용이 원하는 내용이 아닌 경우 원시 JSON 응답을 어떻게 표시합니까? –
본문이 아닌 머리글 만 표시합니다. – mariuss