2012-03-22 4 views
0

JSON으로 인코딩 된 데이터를 반환하는 PHP 파일을 만든 다음 getJSON을 사용하여 읽습니다. 한 소스에서 정보를 가져 와서 여러 영역에 배포하려고합니다. 나는 content-type을 변경하여 헤더로 모든 액세스를 허용했다. 이 시점에서 나는 붙어있다. 이 아이디어를 얻으려면 어떤 아이디어가 필요합니까?getJSON은 jquery 또는 php로 인해 null 또는 아무 것도 반환하지 않습니까?

PHP

header('Cache-Control: no-cache, must-revalidate'); 
header('Content-type: application/json'); 
header('Access-Control-Allow-Origin: *'); 

$search_terms = curlData(); 
$json = array("term" => $search_term); 
echo $_GET['callback'] . "(" . json_encode($json) . ");"; 

다음과 같이 PHP 파일의 출력은 다음과 같습니다

({"term":"sandwich city"}); 

을 여기에 내가 JSON 정보

$.getJSON("http://MYWEBSITE.com/terms.php?callback", function(data) { 
    alert(data); 
}); 

를 검색하는 데 사용하고있는 jQuery를가한다
+0

경고 메시지가'alert (data.term);'이어야합니다. 나는 당신이 지금 테스트 중이라는 것을 알고 있습니다. 그리고 이것은 당신이 얻고있는 NULL을 바꾸지는 못하지만, Id는 단지 그것을 말하고 있다고 생각합니다. – Dutchie432

+0

팁 @Dutchie432 덕분에 모든 정보를 주셔서 감사합니다 – jon

답변

1

({"term":"sandwich city"});은 (는) 유효한 JSONP가 아닙니다. 함수 이름이입니다. documentation에서

http://MYWEBSITE.com/terms.php?callback=? 

:

URL이 문자열 "callback=?"가 포함 된 경우

(또는 이와 유사한, jQuery를 자동 응답을 처리하는 함수를 생성하도록

, 당신의 URL에 =? 추가 서버 측 API에서 정의한대로) 요청은 대신 JSONP로 처리됩니다. 자세한 내용은 $.ajax()jsonp 데이터 형식 토론을 참조하십시오. 당신이 application/json에 대한 응답의 내용 유형을 설정, 응답으로 JSONP를 보내는 경우


, BTW 올바르지 않습니다. 응답은 단순히 JavaScript입니다.

Access-Control-Allow-Origin 헤더를 지정 했으므로 JSONP를 전혀 사용할 필요가 없으며 정상적인 AJAX 호출을 만들어 JSON을 반환 할 수 있습니다.

+0

. 'alert (data.term);과 함께'callback =? '을 추가 했으므로 이제 작동합니다. – jon

관련 문제