簡體   English   中英

PHP標頭位置在第二次重定向期間添加當前錨點

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

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