[英]PHP headers inside of a javascript condition?
我想在JavaScript條件內使用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");
?>
}
那行不通。 首先,您的Web服務器將執行PHP腳本,從而生成帶有JavaScript的HTML頁面。 然后將其發送到用戶的Web客戶端,該客戶端將顯示HTML並執行JavaScript。 到JavaScript解釋器到達PHP代碼時,就沒有蹤跡了。
不,不可能。 (嗯,更像是,它沒有意義或沒有用,可能會導致頁面錯誤。)
在頁面發送到客戶端瀏覽器之前,該php代碼在頁面發出之前在服務器上運行,就像鸛鳥中的嬰兒一樣。 鸛飛過很長一段時間,無論天氣好壞,都有暴風雨,冰,雪,狩獵聚會和污染。 最終,當客戶耐心等待新的嬰兒網頁出現時,鸛到達了您的客戶。
然后,突然〜-p00f〜-頁面到達。 在這一點上 ,該頁面中的JavaScript運行。
如果您需要從JS(僅)發送一些標頭,則可以使用對象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,Prototype等)
但正如已經回答的那樣,用js寫php代碼是不正確的
似乎您正在嘗試通過javascript下載文件,更像是將文件推送到客戶端瀏覽器。 但是,正如已經回答的那樣,代碼無法工作,因為它發生在服務器上,而js在客戶端上運行。
為此,您需要使用javascript本身(在這種情況下為ajax)下載相關內容。
您可以在此處找到如何從javascript下載文件: http : //www.codeproject.com/KB/scripting/FileDownloadUsingJScript.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.