直接打開網址沒問題,通過超鏈接或window.open打開報錯:The HTTP request is not acceptable for the requested resou

我有一個靜態html網頁,裏面有3個超鏈接,我把這個靜態網頁放到nginx發現只要打開某個網址,都會提示下面的錯誤:The HTTP request is not acceptable for the requested resource.但奇怪的是,在瀏覽器的地址欄回車一下,就能訪問了,百思不得其解。

一開始我以爲是nginx的問題,結果部署到tomcat中去訪問,依然有此問題,可見,網頁跳轉是瀏覽器的行爲,不會重新提交到nginx,因爲此時這個超鏈接已經不訪問nginx的主機了。所以,並不是nginx導致的。

後來我將超鏈接改成函數,然後在函數中通過jquery的open或者window.open新開頁時頁面訪問依然會有此問題。

終於,在各種Google bing 百度之後,在csdn發現了前人的解決辦法,下面是原文:

————————————————

本文爲轉發,爲了方便查閱,請查看原作者原文:

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/XuM222222/article/details/103042461
————————————————

當項目中需要新開頁跳轉到其他網站時,最常用的方法就是使用window.open(url)來實現,最近在項目中,使用window.open()方法新開頁跳轉時,有些網站可以正常訪問,有些則訪問不了,會出現諸如:403 Forbidden、406 Not Acceptable 、The HTTP request is not acceptable for the requested resource.等報錯問題,但是單獨去訪問這些地址又是可以正常訪問的。

問題原因:

當點擊訪問頁面中外鏈地址時,會產生一個http請求(用於獲取外鏈地址內容),此時出於安全策略(一些用戶信息或登錄信息會通過url傳遞),瀏覽器會在請求頭中添加一個referrer,用來表示當前請求是從哪個頁面跳轉來的,也就是訪問來源。當外鏈網站對訪問做判斷時,於是會出現諸如403 Forbidden、The HTTP request is not acceptable for the requested resource.問題。

解決方法:

在項目的index.html的<head>中加入如下<meta>代碼:

// index.html
<meta name="referrer" content="no-referrer" />
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章