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

2015-11-12 14:39:14 +08:00
 Lullaby

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

2997 次点击
所在节点    程序员
9 条回复
Comdex
2015-11-12 14:43:51 +08:00
解决方法是把域名弄成一样的
yimity
2015-11-12 15:02:18 +08:00
@Comdex 万一用其他站的服务,域名不可控呢?

应该有文档的吧?
jugelizi
2015-11-12 15:14:19 +08:00
抓别人数据? js 是不允许修改一些 header 的还是放在后端吧,代理或者 jsop
Lullaby
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
2015-11-13 08:48:15 +08:00
@Lullaby ie10 以上及现代浏览器可以使用 cors 返回受控的 header 也就是非 jsonp 协议的跨域访问,你试试看
Lullaby
2015-11-13 09:22:44 +08:00
@jugelizi 非常感谢 我试试
Lullaby
2015-11-13 15:36:04 +08:00
@jugelizi 通过 CORS 解决了 大谢
xiaotan828
2017-12-16 22:46:52 +08:00
@Lullaby 楼主能不能教我一下,我视频在自己的服务器里,想在自己的博客上用,但是不同源,改了 nginx 和 php 都没用,不知道怎么办了
Lullaby
2017-12-17 23:28:35 +08:00
@xiaotan828 同源策略只限制 document 和脚本的源,一般静态资源是不受限制的吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/235637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX