2014-12-11 1 views
0

새로운 Restful API는 Google과 마찬가지로 OpenStreetview는 간단한 콜백 메커니즘을 사용합니다. 기본적으로 API를 호출하여 &callback=my function 매개 변수를 추가합니다. 이 API에 대한 호출을 실행하면 my 함수가 JSON 데이터 집합을 전달하여 호출됩니다.콜백 API 생성

개인적인 용도로 개발중인 API에 대해 동일한 메커니즘을 만들려고합니다.

내 API가 자바 스크립트를 반환해야한다는 것을 이해하면 스크립트에서 전달되는 함수가 호출됩니다.

function apiCall(URL,values, keyPair,cBackPair) { 
    // URL specifics URL to call 
    // keyPair: <keyname>=<key>; leave black if unneeded 
    // cBacPair: <callBackParametername>=<functionname> 
    // called is: URL?values&keypair&cBackPair 

    var request = (keyPair)?'&'+keyPair:''; 
    request = URL + '?'+ encodeURI(values) + request + '&' + cBackPair;  
    var script = document.createElement("script"); 
    script.setAttribute("type", "text/javascript"); 
    script.setAttribute("src", request); 
    document.body.appendChild(script); 
} 

function callAPI() { 
    apiCall('http://xllent.nl/map/ajax/answer.php','q=one','','s=doit'); 
} 

function doit(result) { 
    alert(result); 
} 

내가 callAPI 온로드를 호출 테스트하려면 : 테스트를 위해 나는이를 만들었습니다.

스크립트 answer.php은 매우 기본적인 :

<?$s = $_GET['s']; 
?> 
<script type="text/javascript"> 
doit('jeroen'); 
</script> 

나중에 스크립트가 바로 스크립트를 호출하는 $s를 사용하고, 물론 공급 사용자 데이터 것입니다.

지금은 스크립트 doit('jeroen');을 실행하려고합니다. 그러나 아무 일도 일어나지 않습니다. 브라우저 창에 javascript:doit('jeroen');을 입력하면 예상 한 결과를 얻을 수 있습니다.

제안 사항?

+0

편안한로 끝나지 않는, 그것을 작동 – andrew

답변

2

<script> 태그로 자바 스크립트를 묶지 마십시오. 자바 스크립트 본문이있는 HTML 파일을 생성하지 않습니다. 자바 스크립트 파일을 생성하는 것처럼 이것을 생각해야합니다.

자바 스크립트 파일도 시작 및 API의이 같은 콜백 URL을 엽니 컬 같은 웹 클라이언트를 사용 <script>

+0

자바 스크립트와 아무 상관이있다! 대단히 감사합니다 – user3759722