直接打开网址没问题,通过超链接或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" />
 

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