如何阻止或者避免option请求

大洪 2017-01-08 10:41:25
使用get方式请求geoserver的rest服务,有几个服务是需要认证(Authorization)的。
所以就在请求头(headers)添加了认证信息


const fetchList = () => {
$.ajax({
url: 'http://192.168.9.41:8080/geoserver/rest/layers.json',
dataType: 'json',
type: 'GET',
success: function (result) {
console.log(result)
}
,
headers: {
'Authorization': 'Basic YWRtaW46Z2Vvc2VydmVy'
}
})
}


因为跨域,这样浏览器就会默认先发起options方式请求,而geoserver不支持options方式请求,提示403.所以后面的get请求就无效了。
如果不使用浏览器的话,geoserver是可以返回正确请求的。

rt,如何阻止或者避免options请求
...全文
5028 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
大洪 2019-11-13
  • 打赏
  • 举报
回复
引用 6 楼 南墙小猫 的回复:
这样就可以放行options请求了?
这样就不跨域了
「已注销」 2019-11-13
  • 打赏
  • 举报
回复
这样就可以放行options请求了?
大洪 2019-11-13
  • 打赏
  • 举报
回复
引用 4 楼 南墙小猫 的回复:
nginx怎么设置的?


    server {
        listen       8040;
        server_name  localhost;

        location /geoserver/ {
            proxy_pass http://localhost:8080;
            proxy_redirect  off;
        }

        location / {
            proxy_pass http://localhost:8030;
            proxy_redirect  off;
        }
    }
「已注销」 2019-11-13
  • 打赏
  • 举报
回复
nginx怎么设置的?
wowowebservice 2018-06-20
  • 打赏
  • 举报
回复
引用 2 楼 dahongdahong 的回复:
[quote=引用 1 楼 showbo 的回复:] 修改接口,这个options是浏览器获取跨域页面是否设置了Access-Control-Allow-Origin相应头用的 不能改接口只能自己服务器做代理页面了,服务器端xhr无跨域问题
最后选择用nginx做了代理解决了[/quote] 能否说下 你是具体是怎么做的么
大洪 2017-01-17
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
修改接口,这个options是浏览器获取跨域页面是否设置了Access-Control-Allow-Origin相应头用的 不能改接口只能自己服务器做代理页面了,服务器端xhr无跨域问题
最后选择用nginx做了代理解决了
Go 旅城通票 2017-01-09
  • 打赏
  • 举报
回复
修改接口,这个options是浏览器获取跨域页面是否设置了Access-Control-Allow-Origin相应头用的 不能改接口只能自己服务器做代理页面了,服务器端xhr无跨域问题

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧