2012-10-10 8 views
2

가능한 중복 :JSONP가 올바른 응답을 반환하기 위해, 서버 지원에 의존 하는가
json Uncaught SyntaxError: Unexpected token :왜 JsonP가 작동하지 않습니까?

?

나는이 요청을 받았으며, 내가 얻은 것은 js 오류이다.

$.getJSON('myURL?q=keyword&callback=?', function(data){console.log(data)}); 

각도의 JSONP 방법은 작동하지 않습니다 :

http://jsfiddle.net/neoswf/tckGG/5/

콘솔 >> JS 오류 : Uncaught SyntaxError: Unexpected token :

가 JSONP 일부 서버 구현에 의존합니까?

SOLVED !!!

이 질문은 다른 질문과 다른 점이있어서 프록시 솔루션에 대해 언급하지 않습니다.

답변

3

서버가 JSONP를 반환하지 않으면 JSON을 반환합니다. JSONP 결과는 함수 호출에서 랩핑 된 JSON 결과입니다.

예 : 서버 반환 JSONP를 할 수없는 경우

callback873659823745({"destino":"http://...", ... }) 

, 당신은 JSONP 결과로 싸서 JSON 결과를 서비스를 요청하고 반환하는 프록시 서버가 필요합니다.

오래 전에 이런 프록시를 설정했는데, jsonp.guffa.com에 바로 설정할 수 있습니다. 직접 설정할 수있는 권한이없는 경우 사용할 수 있습니다.

데모 : http://jsfiddle.net/Guffa/tckGG/6/

+0

많은 사람 고마워요 !!! – neoswf

+0

@ Guffa- 어떻게 내 글을 쓸 수 있습니까?내가 너의 프록시를 사용한다면 너에게 너무 비싸지 않을까 걱정된다. – neoswf

+0

절대 신경 쓰지 마라. 이미 웹에서 자습서를 거의 찾지 못했습니다 ... http://blog.jsonpify.com – neoswf

2

예, jsonp는 서버 지원이 필요합니다. 서버가 json * P *의 "패딩"부분에 json을 래핑해야합니다. 이는 클라이언트가 정의하고 응답 데이터를 중심으로 실행하는 방법입니다.

+0

나는 그것을 우회 할 수있는 방법이 있습니까? 서버가 CORS를 구현하지 않은 경우 내 목표를 달성 할 수있는 옵션이 있습니까? – neoswf

+1

@NeoSwf : 프록시를 사용해야합니다 ... –

+0

@FelixKling에 감사드립니다. 설명 할 수 있니? 프록시가 도메인 간 규칙을 호출하지 않는 방법은 무엇입니까? – neoswf

2

귀하의 URL이 JSONP을 반환하지 않기 때문에. 그것은 JSON을 반환합니다. 예를 들어

{"destino":"http://www.buscape.com.br","palavras":["tv lcd 32","tv led","tv led 32","tv led 40","tv","tv led 42","tv lcd","tv lcd 42","tv lcd 26","tv 3d","tv lcd 40","tv 32","tv led 46","tv 42","tv lcd 22","tv led 32 full hd"]} 

JSONP가 flickr 반환 값을 확인하는 경우. 반환

callbackToExecute({... JSON Object ...})