[英]PHP Header Location adding current anchor during second redirect
我正在向表單提交一個帶有添加到URL的錨的表單,以便當出現錯誤時,表單可以保證在視口中,這是一個簡化的示例...
<form id="my_form" action="/form_link/#my_form" method="POST">
...
</form>
當/form_link/
接收到表單后,它將對其進行處理;如果出現錯誤,它將繼續繼續加載頁面並顯示錯誤。
但是,發布成功后,它將使用...重定向到其他頁面。
header('Location: /another_link/');
die;
問題是當我最終到達重定向的鏈接時,URL實際上是...
/another_link/#my_form
而不是預期的...
/another_link/
我很茫然,事實之后添加了錨點,所以我沒有什么要剝離的。 我如何防止這種行為?
編輯:原因可能是因為在表單提交和重定向之間還沒有輸出到瀏覽器嗎? 無論如何,有什么要清除維護錨定目標的標頭中的內容嗎?
編輯2: headers_sent()
報告的已發送的標頭是:
[0] => X-Powered-By: ZendServer 6.3.0
[1] => Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/
[2] => Expires: Thu, 19 Nov 1981 08:52:00 GMT
[3] => Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
[4] => Pragma: no-cache
[5] => Access-Control-Allow-Origin: **REMOVED**
[6] => Access-Control-Allow-Methods: GET, POST, OPTIONS
[7] => Access-Control-Allow-Headers: X-Requested-With
因此,我看不到任何會影響后續使用的東西?!?!
錨不作為請求的一部分發送到服務器; PHP對此一無所知。 您所看到的是客戶端(瀏覽器)行為。 我剛剛使用其他HTTP響應(301、303、304)進行了測試,結果是相同的。
我建議在發生錯誤時使用JavaScript向下滾動到表單,而不要依賴URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.