我的网站调用一个第三方API,这个API需要access-token验证,假设有一个链接:
<a href="http://example.com/api/aa.png"></a>
这个链接实际上需要token认证,理论上我可以把这个token加到URL后面,但是这样的话这个token就会显示在历史记录里面,有点危险。 所以能不能设一个header[“x-access-token”],使得浏览器请求链接的时候自动地带上这个header?
貌似无解的。。。
token本来不是适合这个体系的,如果强行这么做,可以考虑把token放倒cookie里,这是浏览器能自动传的一种方式
这首先是一个设计问题,不应该从实现上去解决,先仔细地推敲是不是可以改进设计,从而这样的链接可以不需要,或者不直接需要x-access-token,楼上说的用cookie是一种方法。如果你当前页面家在前已经登录,放在session里也可以。在产生a标签之前先验证,再决定是否显示,而不是显示了再去验证。
如果你一定要这么干,应该也有办法,点击链接时用JS接管,发送ajax请求,请求里注入头信息,mime头设成binary,取得图片,然后弹出一个popup(或者用window.open),里面写一个新的img标签,把取得的图片给这个标签,或者用canvas画出来。
@captainblue2013 主要是这个跨域了,cookie应该发不过去吧
@jingsam 可以的,http原本不存在跨域,浏览器限制多了,才有了跨域
@captainblue2013 API服务的的跨域是这么写的:Access-Control-Allow-Origin:* 阮一峰的文章说:
回复我? 自豪地采用 CNodeJS ionic