2014-09-27 2 views
0

저는 Cordova 앱을 개발 중이며 Drupal 백엔드에서 OAuth를 통해 인증해야합니다. 요청 토큰을 얻으려고합니다. 나는 200 응답을 수신하고있어 피들러와 나는 내 토큰을 받고 있어요 볼 수 있습니다각도와 파이어 폭스는 내 OAuth 호출의 응답이 틀리다고 말합니다. Fiddler가 달리 말합니다.

Fiddler screenshot

내가 피들러에서 다음과 같은 메시지가 가지고 있다고합니다

응답 인코딩입니다 검사 전에 디코딩 될 필요가있을 수있다. 변형하려면 여기를 클릭하십시오.

캡쳐 한 스크린 샷은 디코딩하기 위해 클릭 한 후에 표시됩니다.

그러나 각도가 $http의 오차 함수를 입력하고 파이어 폭스 나에게 응답을 지시하는 것은 비어 : 각도에서 보낸

Firefox screenshot

요청 헤더가 application/jsonplain/text (및 */*) 받아 내 서비스를 말한다.

그럼 왜 파이어와 앵귤러가 그렇지 않은지 말해 주면서 피들러가 나에게 응답이 있다고 말하고있는 사람은 누구일까요? 디코딩인가요? 그렇다면 응답을 변환하기 위해 $http에 함수를 추가 할 수있을 것으로 기대됩니다. 그러나이 함수에서 data 매개 변수가 ""(빈 문자열)임을 알 수 있습니다.

UPDATE가 나는 원인은 응답이 '청크'형식으로 전송됩니다 생각합니다. Angular의 $http은 청크 응답을 처리 할 수 ​​없습니다. 이제 왜 내 서버/드루팔 (Drupal)이 그러한 작은 응답에 대해 청크 응답을 보내고 있는지, 어떻게 피하는지를 알아 내야합니다. 또는 각도로 덩어리 진 응답을받는 방법.

UPDATE 2

내가 jQuery를 사용하여 fiddle에서이 동작을 넣어 관리했습니다. 호출하는 리소스는 보호되지 않으므로 내 질문은 OAuth와 관련이 없습니다 (나중에 다시 작성하려고합니다). 나는 그것이 chunked 응답 또는 CORS인지 확실하지 않습니다.

하지만 Fiddler를 통해 나는 모든 데이터가 포함 된 응답을 볼 수 있습니다 (브라우저에서 볼 때 동일한 데이터가 the resource에 도착했을 때 나타납니다.) 먼저 Fiddler에서 'unchunk'해야합니다. ?

또는

이 브라우저는 F12을 치면

+0

웹 브라우저 (특히 XmlHttpRequest 객체)는 자동으로 HTTP 응답을 디코딩하고 무차별 처리합니다. 저것을 무능하게하는 아무 방법도 없다.브라우저의 콘솔에 다른 정보, 특히 CORS 오류에 대한 언급이 있습니까? – EricLaw

+0

글쎄, 내가 틀리지 않는다면, 브라우저가 그것을 unchunks하면 좋을 것이다. 그러나 Angular와 jQuery (둘 다 시도했습니다)는 오류 기능을 입력합니다. 추가 오류 정보가 없습니다. 하지만 상태 코드 (내 스크린 샷에서 볼 수 있듯이 200)입니다. – Peter

+0

CORS와 관련하여이 문제에 대해서는 전문가가 아닙니다. 그러나 보호되지 않은 리소스에 대해 동일한 동작을 수행 할 수 있으므로 필자는이를 피들 (http://jsfiddle.net/petermorlion/jo8f1gvo/)에 넣었습니다. – Peter

답변

1

에도 응답을 반환하지만, 때문에 CORS의를 차단하고 브라우저의 오류 콘솔 보면, 당신은 볼 수 있습니다 :

XMLHttpRequest cannot load http://www.gentlesite.be/drupal/api/nodes. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

같은 Origin-Policy는 다른 사이트가 명시 적으로 옵트 인하지 않는 한 JavaScript가 다른 사이트의 내용을 읽지 못하게합니다. 동일한 출처 정책에 대한 소개는 this post을 참조하십시오.

+0

나는 당혹스럽고 한숨을 쉬고있다. 콘솔에서 보안 메시지를 다시 활성화 한 후에는 (실제로 얼마 전 비활성화 되었어야합니다.) 매우 감사합니다! – Peter

관련 문제