Заголовки PHP внутри условия JavaScript? - PullRequest
1 голос
/ 17 февраля 2011

Я бы хотел отправлять заголовки с PHP внутри условия javascript.Это возможно?

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");
    ?>
}

Ответы [ 4 ]

3 голосов
/ 17 февраля 2011

Это не сработает.Сначала ваш веб-сервер выполнит PHP-скрипт, в результате чего HTML-страница с JavaScript.Затем он отправляется веб-клиенту пользователя, который отобразит HTML и выполнит JavaScript.К тому времени, когда к нему подключается интерпретатор JavaScript, кода PHP не остается.

2 голосов
/ 17 февраля 2011

если вам нужно отправить некоторые заголовки из JS (только), вы можете использовать метод setRequestHeader объекта XMLHttpRequest

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

или может использовать некоторые методы JS Framework (jQuery, Prototype и т. Д.)

Но, как уже ответили, не правильно писать php код в js

2 голосов
/ 17 февраля 2011

Нет, это невозможно.(Ну, скорее, это не имеет смысла или полезно, и, вероятно, приведет к ошибкам страницы.)

PHP-код запускается на вашем сервере до отправки страницы, как ребенок всчет аиста, на пути к клиентскому браузеру.Аист летит долго, благодаря хорошей погоде и плохой погоде, штормам, льду, снегу, охотничьим вечеринкам и загрязнению.В конце концов, аист достигает вашего клиента, пока он терпеливо ждет появления своей новой детской веб-страницы.

Затем, внезапно, - ~ p00f ~ - и страница появляется.При этой точке JavaScript на странице запускается.

1 голос
/ 17 февраля 2011

Похоже, что вы пытаетесь загрузить файл с помощью javascript, точнее, отправить файл в браузер клиента. Однако, как было получено, код не может работать, как это происходит на сервере, а js запускается на клиенте.

Для этого вам нужно будет использовать сам javascript, в данном случае ajax, чтобы загрузить соответствующее содержание.

Вы можете найти, как загрузить файл из javascript здесь: http://www.codeproject.com/KB/scripting/FileDownloadUsingJScript.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...