2012-04-16 4 views
0

jQuery의 아약스를 사용하려고했지만 크로스 도메인 요청에 문제가 있습니다 (Facebook의 캔버스 앱이 iframe에 있고 Chrome 브라우저가 다른 도메인 (facebook.com 아님)에게 아약스 요청을 허용하지 않음).Facebook의 캔버스 앱에서 Ajax를 사용하는 방법은 무엇입니까?

사용되지 않는 FBJS에는 Ajax 프록시가 있지만 더 이상 사용되지 않습니다. 어떻게 처리할까요? 도움 주셔서 감사합니다.

답변

1

iframe을 사용하는 경우 AJAX 호출이 작동합니다. iframe은 자체 도메인이므로 도메인 간 요청이 아닙니다.

+0

; http 리소스에 대한 모든 요청/리디렉션/etc가 https 도메인 내에 있어도 iframe 내에서 차단됩니다. 크롬에서 테스트되었습니다. – cDima

0

실제로 헤더에 도메인 간 요청을 추가해야합니다.

나는 PHP로 만들었습니다.

자바 스크립트 : - 그냥 살펴보십시오.

function ajax(id){ 
     $.ajax({ 
      type: "POST", 
      url: "json.php", 
      data: {id: id}, 
      dataType : 'json', 
      forceIframeTransport: true, //force use iframe or will no work    
      success: function(result){ 
       console.log(result); 
      }, 
      error: function(errorThrown){ 
      } 
     }); 

    } 

JSON.PHP : -

<?php 
    header('Access-Control-Allow-Origin: *'); 
$id = $_POST['id']; 
$id = "test".$id; 
$json = json_encode($id); 
echo $json ; 
?> 

HTML 코드 : - 지금 사건이 될 것 같습니다하지 않습니다

<a onclick="ajax(3); return false;" id="result">Hello</a> 
관련 문제