2011-02-16 3 views
1

자바 스크립트 조건 안에 PHP로 헤더를 보내고 싶습니다. 그게 가능하니?자바 스크립트 조건 안에 PHP 헤더가 있습니까?

if ($('body').hasClass('browserChrome')) { 
    <?php 
     header("Content-Type: application/x-chrome-extension"); 
     header('Content-Disposition: attachment; filename="http://example.com/file.crx"'); 
     header("Pragma: no-cache"); 
     header("Expires: 0"); 
    ?> 
} 

답변

3

그럴 수 없습니다. 먼저 웹 서버가 PHP 스크립트를 실행하여 JavaScript가있는 HTML 페이지를 만듭니다. 그런 다음 사용자의 웹 클라이언트로 보내지면 HTML이 표시되고 자바 스크립트가 실행됩니다. JavaScript 인터프리터가 도착할 때까지는 PHP 코드의 흔적이 없습니다. 당신이 JS (전용)에서 일부 헤더를 전송해야하는 경우

2

아니요. 불가능합니다. (음, 더 의미가 없거나 유용하지 않으며 페이지 오류가 발생할 수 있습니다.)

PHP 코드는 을 서버에서 실행합니다. 페이지가 전송되기 전에는 황새에있는 아기처럼 클라이언트 브라우저로 황새는 좋은 날씨와 나쁜 날씨, 폭풍, 얼음, 눈, 사냥 파티 및 오염을 통해 오랫동안 날아갑니다. 마침내 황새는 새 아기 웹 페이지가 나타나기를 참을성있게 기다리면서 고객에게 다가갑니다.

갑자기, ~ ~ p00f ~ - 페이지가 도착합니다. 지점에 해당 페이지의 JavaScript가 실행됩니다.

2

, 당신은 객체 XMLHttpRequest의 방법 setRequestHeader를을 사용할 수 있습니다

new XMLHttpRequest(); 
//or 
new ActiveXObject(...) for IE 
... 
xmlHttp.open(... 
xmlHttp.setRequestHeader("Cache-Control", "no-cache, must-revalidate"); 
xmlHttp.setRequestHeader("Pragma", "no-cache"); 

또는 어떤 방법 JS 프레임 워크를 사용할 수 있습니다 (jQuery를, 프로토 타입, 등) 당신이 javas를 통해 파일을 다운로드하려고하는 것처럼

이미 대답했습니다 그러나, JS에서 올바른 쓰기 PHP 코드가 아닙니다은

1

보인다 cript, 더 비슷하게 클라이언트 브라우저에 파일을 푸시하십시오. 그러나 응답 된대로 코드가 작동하지 않으며 서버에서 발생하므로 js는 클라이언트에서 실행됩니다.

달성하려면 관련 콘텐츠를 다운로드하려면 자바 스크립트 자체 (이 경우에는 아약스)를 사용해야합니다.

자바 스크립트에서 파일을 다운로드하는 방법은 다음을 참조하십시오. http://www.codeproject.com/KB/scripting/FileDownloadUsingJScript.aspx

관련 문제