V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lullaby
V2EX  ›  程序员

跨域请求如何实现自定义 header?

  •  
  •   Lullaby · 2015-11-12 14:39:14 +08:00 · 2923 次点击
    这是一个创建于 3300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网站请求的 api 域名与网站本身的域名不一样,同时 api 要求 http header 带认证的参数以及版本号,问一下 v 友们遇到这种情况如何解决的?

    9 条回复    2017-12-17 23:28:35 +08:00
    Comdex
        1
    Comdex  
       2015-11-12 14:43:51 +08:00   ❤️ 1
    解决方法是把域名弄成一样的
    yimity
        2
    yimity  
       2015-11-12 15:02:18 +08:00   ❤️ 1
    @Comdex 万一用其他站的服务,域名不可控呢?

    应该有文档的吧?
    jugelizi
        3
    jugelizi  
       2015-11-12 15:14:19 +08:00   ❤️ 1
    抓别人数据? js 是不允许修改一些 header 的还是放在后端吧,代理或者 jsop
    Lullaby
        4
    Lullaby  
    OP
       2015-11-13 00:12:01 +08:00
    @Comdex @yimity @jugelizi
    网站是自己的,服务也是自己的,服务 api 的域名和网站域名不一样,本身用 jsonp 是可以解决,但是 http 接口要求 http request header 带有自定义的 version 以及 auth 参数。
    跨域后的 header 是不可控的。
    我想的是:
    1 、新增或修改后端 api 接口以适应当前应用场景;
    2 、用 php 做 http 请求的中间代理,由 php 向后端服务器请求数据(以达到 http header 可控);
    不知道还有没有什么方式可采用?
    jugelizi
        5
    jugelizi  
       2015-11-13 08:48:15 +08:00   ❤️ 1
    @Lullaby ie10 以上及现代浏览器可以使用 cors 返回受控的 header 也就是非 jsonp 协议的跨域访问,你试试看
    Lullaby
        6
    Lullaby  
    OP
       2015-11-13 09:22:44 +08:00
    @jugelizi 非常感谢 我试试
    Lullaby
        7
    Lullaby  
    OP
       2015-11-13 15:36:04 +08:00
    @jugelizi 通过 CORS 解决了 大谢
    xiaotan828
        8
    xiaotan828  
       2017-12-16 22:46:52 +08:00
    @Lullaby 楼主能不能教我一下,我视频在自己的服务器里,想在自己的博客上用,但是不同源,改了 nginx 和 php 都没用,不知道怎么办了
    Lullaby
        9
    Lullaby  
    OP
       2017-12-17 23:28:35 +08:00
    @xiaotan828 同源策略只限制 document 和脚本的源,一般静态资源是不受限制的吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2559 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:30 · PVG 08:30 · LAX 16:30 · JFK 19:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.