2012-09-01 2 views
1

여기 크로스 도메인/크로스 브라우저, 아약스 호출

내가 같은 도메인 ( abc.com)에서 index.php에서 콘텐츠에 액세스 할 수 $.post("index.php")을 수행 abc.com에서 main.js 파일이 시나리오입니다.

동일한 도메인 아약스 전화이므로 위의 내용이 유용합니다.

이제 누구나 자신의 웹 사이트에 main.js을 포함시킬 수 있습니다 (도메인 xyz.com).

이제 경로 index.php ($.post("index.php"))은 도메인 xyz.com (abc.com이 아님)에있는 파일을 참조합니다. 나는 절대 경로 http://www.abc.com/index.php를 넣을 경우이 일부 브라우저에서 작동하지 않습니다 (크로스 도메인 아약스 제한) 이제

, 내가 PHP 파일에서 크로스 도메인 수에 대한 헤더를 넣으면

, 그것은 실패 중 하나가 작동하지 않습니다 즉 7 이하.

p.s. main.js가 아닌 index.php 파일에 내용을 넣어야합니다. 또한, 나는 PHP 파일을

<script type='text/javascript' src='http://abc.com/index.php'></script>

을 포함 할 그나마 내가 서버 php 파일 (내가 JS 파일에 PHP 코드를 넣을 수 있습니다)으로 치료하는 .js 파일을 추가하지 않으려는 것입니다.

내용은 거대하다, 나는 get 요청 또는 JSONP

내가 뭔가 실종 (나는 생각한다, JSONP는 대용량 데이터를 허용하지 않습니다)를 할 수없는 이유는 무엇입니까? 이것을 어떻게 할 수 있습니까?

답변

1

이렇게하려면 JSONP 또는 CORS 중 하나를 사용할 수 있습니다.

저는 JSONP를 사용했으며 다음 주 CORS를 사용해 보겠습니다. 나는 CORS가 여전히 비동기 적이라고 생각한다. 그래서 그것은 나를 위해 가장자리를 가지고 있을지도 모른다. 적어도 그것은 나의 희망입니다 ...

+0

Cors는 다른 출처에서 액세스 할 수 있도록 허용하는 아파치 헤더 설정입니다. – AlienWebguy

+0

CORS가 ie7에서 작동하지 않습니다 (즉, 해킹이있는 ie8). 내가 틀렸어도 포스트 요청 (jsonp에서 지원되지 않는 요청)을해야합니다. – Jashwant

0

나는 server side solution에 가야한다고 생각합니다. PHP에서 파일 (예 : index.php)을 읽고 hidden field 및 DOM 준비에서 사용할 출력을 저장합니다. 숨겨진 필드의 데이터를 사용할 수 있습니다.

+0

그럴 수 없습니다. 모든 웹 사이트는 내 main.js를 웹 사이트에 넣을 수 있습니다. 나는 그들이 어떤 구성이라도하기를 원하지 않는다. – Jashwant

0

서버 측에서도 컬 (curl) 요청이 잘 작동해야합니다. 먼저 JSONP를 시도해 보겠습니다. 그러나 작동하지 않으면 말풍선 요청으로 이동하십시오.