2016-12-07 5 views
0

요청에서 응답을받을 수 있지만 코드의 .then() 부분이 실행되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 당신이 the docs를 읽어보십시오

window.distance24Result = function(data){ alert(data.distance); }; 
$http.jsonp("http://www.distance24.org/route.jsonp?stops="+city+"|"+country,{data:'jsonp', 
jsonpCallbackParam: 'distance24Result' 
}) 
.then(function(data){console.log(data);}); 
+0

확인을 서버의 응답을 사용하십시오 - 당신이 서버 측에 오류가 가능성이 높습니다. – user2182349

+2

그 URL에서 HTML 응답을받을 가능성이 더 높습니다. –

+0

맞습니다. HTML입니다. 어떻게 JSON으로 만들 수 있습니까? – adace1

답변

0

, 당신은 각도가 올바른 요청 URL을 사용하므로 jsonpCallbackParamjsonp을 통과해야합니다. 콜백 함수의 이름이 아니라 GET 매개 변수의 이름입니다. 또한 경로는 route.json이 아니며 route.jsonp이 아닙니다.

$http.jsonp("http://www.distance24.org/route.json?stops="+city+"|"+country, { 
    jsonpCallbackParam: 'jsonp' 
}).then(function(data) { 
    console.log(data); 
    alert(data.distance); 
}); 

또는, 당신은 또한 각도 v1.6을하기 전에

$http.jsonp("http://www.distance24.org/route.json", { 
    params: {stops: city+"|"+country}, 
    jsonpCallbackParam: 'jsonp' 
}) 

를 사용할 수없는 jsonpCallbackParam 설정 값이 없었다. 대신 당신은

$http.jsonp("http://www.distance24.org/route.json?jsonp=JSON_CALLBACK&stops="+city+"|"+country) 

또는

$http.jsonp("http://www.distance24.org/route.json", {params: { 
    "stops": city+"|"+country, 
    "jsonp": "JSON_CALLBACK" 
}}) 
+0

두 가지 방법을 시도했으며 예기치 않은 토큰이 ':'라고 말합니다. – adace1

+0

브라우저 콘솔에서 요청한 URL은 무엇입니까? – Bergi

+0

http://www.distance24.org/route.json?stops=Beverly%20Hills,California|Auckland – adace1