簡體   English   中英

javascript條件內的PHP標頭?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM