前端代碼:
後端代碼:
function login_to_spe(){ //省略了get url 代碼 header("Location: $url");}
前端代碼和後端代碼都在同一個網域名稱下,login_to_spe()擷取的url是另一個網域名稱下的
iframe引用的是同網域名稱下的url,雖然這個url進行了跳轉,但為什麼還是被瀏覽器攔截了?
瀏覽器報的錯誤:Load denied by X-Frame-Options: https://xxxx.com/ does not permit cross-origin framing.
最後查出來的問題是:清了瀏覽器的緩衝就不會報錯了。。ORZ。。
回複內容:
前端代碼:
後端代碼:
function login_to_spe(){ //省略了get url 代碼 header("Location: $url");}
前端代碼和後端代碼都在同一個網域名稱下,login_to_spe()擷取的url是另一個網域名稱下的
iframe引用的是同網域名稱下的url,雖然這個url進行了跳轉,但為什麼還是被瀏覽器攔截了?
瀏覽器報的錯誤:Load denied by X-Frame-Options: https://xxxx.com/ does not permit cross-origin framing.
最後查出來的問題是:清了瀏覽器的緩衝就不會報錯了。。ORZ。。
請求資料步驟
發送請求--->瀏覽器接受響應--->判斷是否是同域下
是的話,就把響應資料返回給請求點。不是的話就提醒禁止跨域請求。
現在可以在回應標頭中增加
header("Access-Control-Allow-Origin: *"); //允許的網域header("Access-Control-Allow-Methods: POST, GET, OPTIONS"); //允許的方法header("Access-Control-Allow-Headers: X-PINGOTHER"); //允許的自訂header
告訴瀏覽器可以把響應值返回給跨域請求的點
=============================================================================
1樓的評論,說這針對的不對
看提示
Load denied by X-Frame-Options: https://xxxx.com/ does not permit cross-origin framing.
X-Frame-Options頭就是用來告訴瀏覽器,本頁面是否應該在frame顯示本頁面。
它的配置:
DENY 這個頁面不允許在frame中顯示SAMEORIGIN 只允許在本域的frame中顯示ALLOW-FROM uri 配置允許顯示的域
因此,只需要添加如下
header("X-Frame-Options: ALLOW-FROM xxx你的域xxx");