API 服务器能不能支持多个站点的跨域

假如有 api.example.com 的站点
有俩个项目 a.example.comb.example.com
他们都需要跨域访问 api 服务器

那么都知道
"Access-Control-Allow-Origin", "*" 这样表示全部跨域
"Access-Control-Allow-Origin", "http://a.example.com" 这样表示a站可以访问

那么如何让a和b站都可以跨站

阅读 6.3k
5 个回答

php 全局变量server可以获取当前访问的域名,然后你在设置允许访问的,我就是这么干的

在程序最前面获取Origin判断是否在允许的域名 不是就禁止执行后面内容

根据请求来返回对应的access-control-allow-origin就好了
请求的应该从referer里拿得到

既然你知道用Access-Control-Allow-Origin来控制,那还有什么问题么?
将a b两个站的server中的api都加上Access-Control-Allow-Origin就好了

    Origin := r.Header.Get("Origin")
    if Origin != "" {
        w.Header().Add("Access-Control-Allow-Origin", Origin)
        w.Header().Add("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE")
        w.Header().Add("Access-Control-Allow-Headers", "x-requested-with,content-type")
        w.Header().Add("Access-Control-Allow-Credentials", "true")
    }

根据3楼所述,自己控制就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题