2014-04-21 6 views
0

각도/phonegap 앱에서 $ http.jsonp 요청을하고 있습니다. 데이터가 원격 서버에 성공적으로 전달되고 있지만 각도 앱의 성공 함수에서 응답을받을 수 없습니다. 콘솔은 '성공은 정의되지 않았습니다.'라고 말하고 있습니다.

app.controller('mainControl' , function($scope , $http){ 
$scope.credentials = {username: '' , password: ''}; 

$scope.login = function(){ 
console.log($scope); 

var url = "http://127.0.0.1:3000/endpoint?callback=JSON_CALLBACK"; 
var responsePromise = $http.jsonp(url, {params: { 
    username:$scope.credentials.username, 
    password:$scope.credentials.password 
}}); 

responsePromise.success(function (data){ 
    console.log(data); 
}) 
} 

}) 

내가 성공을 정의하기 위해 한 단계 실종 : 여기

내 각 코드?

+0

이 정말 귀하의 질문에 대답하지만 JSON/P를 기억하지 않습니다 주로 크로스를 해결하기 위해 사용된다 데스크톱 브라우저에서 도메인 xhr 문제가 발생했습니다. PhoneGap에 해당 블록이 없습니다. 아마도 직접 요청을 시도하고 json/p를 건너 뛰겠습니까? –

+0

모든 유형의 도메인 간 요청에는 JSONP 또는 CORS 중 무엇을 말할 수 있는지 알려주고 있습니다. 난 그냥이 응용 프로그램에서 jsonp없이 데이터를 전송하고 서버에 도달하지 못했습니다. – user3294779

+0

* desktop * 브라우저에는 JSON/P 또는 CORS가 필요합니다. PhoneGap을 사용하면 특별히 XHR을 만들지 않아도됩니다. –

답변

1

난 당신이 약속 해상도 처리의 그 때는 방법을 사용할 필요가 JSONP에 대한 생각 :

responsePromise.then(function (data){ 
    //success things go here 
    console.log(data); 
}, function(data({ 
    //error things go here 
}); 
+0

상황이 좀 거칠어졌습니다. 나는 원래의 질문이 표적이 아님을 깨달았다. 내 원격 서버에서 나는 res.send ('success')를하고 있었다. 내가 '성공'을 받고 있음을 알았지 만, 콘솔에서 정의되지 않았다고 나에게 말하고 있었다. 따라서 콘솔은 응답이 정의되지 않았으며 함수가 아니라고 말합니다. 부적절하게 형식화 된 메시지를 다시 phonegap으로 보내겠습니까? JSON이어야합니까? – user3294779

+0

죄송합니다 모두 - 내 질문은 정말 문제를 해결하지 못했습니다. 성공 함수가 제대로 작동하고 있었는데 형식이 잘못된 데이터를 클라이언트로 다시 보냈습니다. Res.send ('success')는 콘솔 로깅 "success is not defined"이고, res.jsonp ('success')는 트릭을 수행합니다. 희망이 있으면 각도와 $ http.jsonp로 작업하는 사람들을 도울 수 있기를 바랍니다. – user3294779

+0

이상적으로 JSON을 다시 보내야합니다. – MBielski

관련 문제