CNode

如何自动地为a链接加上access-token的header?

问答
Jjingsam发布于10 年前最后回复10 年前8 回复20363 浏览0 收藏

我的网站调用一个第三方API,这个API需要access-token验证,假设有一个链接:

<a href="http://example.com/api/aa.png"></a>

这个链接实际上需要token认证,理论上我可以把这个token加到URL后面,但是这样的话这个token就会显示在历史记录里面,有点危险。 所以能不能设一个header["x-access-token"],使得浏览器请求链接的时候自动地带上这个header?

查看回复

回复 (8)

J
jingsam#1·10 年前

@captainblue2013 API服务的的跨域是这么写的:Access-Control-Allow-Origin:* 阮一峰的文章说: QQ截图20160529104755.png

I
i5ting#2·10 年前

貌似无解的。。。

C
captainblue2013#3·10 年前

token本来不是适合这个体系的,如果强行这么做,可以考虑把token放倒cookie里,这是浏览器能自动传的一种方式

F
flamingtop#4·10 年前

这首先是一个设计问题,不应该从实现上去解决,先仔细地推敲是不是可以改进设计,从而这样的链接可以不需要,或者不直接需要x-access-token,楼上说的用cookie是一种方法。如果你当前页面家在前已经登录,放在session里也可以。在产生a标签之前先验证,再决定是否显示,而不是显示了再去验证。

F
flamingtop#5·10 年前

如果你一定要这么干,应该也有办法,点击链接时用JS接管,发送ajax请求,请求里注入头信息,mime头设成binary,取得图片,然后弹出一个popup(或者用window.open),里面写一个新的img标签,把取得的图片给这个标签,或者用canvas画出来。

C
captainblue2013#7·10 年前
引用 jingsam@captainblue2013 主要是这个跨域了,cookie应该发不过去吧

@jingsam 可以的,http原本不存在跨域,浏览器限制多了,才有了跨域

参与回复
登录后即可参与回复。登录