ajax跨域上传图片,ajax跨域请求图片

4727e2123c373f95e1432e7a9a6cc8d5.png

慕标琳琳

jsonp 应该不行,报错信息也提示了,这是张图片,不是可执行脚本,可以换种方式:    window.onload = function() {        var aLink = document.createElement('a');        aLink.href = 'http://favicon.byi.pw/?url=https://www.baidu.com/';        aLink.download = 'img';        aLink.style.display = 'none';        document.body.appendChild(aLink);        aLink.click();    };jsonp 为什么不行,这要涉及到 jsonp 的原理了,比如一个可以通过 jsonp 访问的 urlhttp://freegeoip.net/json/?callback=handleResponse实际上这个 url 里的内容应该是这个样子:handleResponse(data);jsonp 技术,实际上代码是这样:var script = document.createElement("script");script.src = "http://freegeoip.net/json/?callback=handleResponse";document.body.insertBefore(script, document.body.firstChild);很明显,这个元素加载好了后,肯定直接执行脚本里的代码,实际上就是执行handleResponse(data);那么,如果你在本地脚本里定义了 handleResponse 函数 function handleResponse(data){     // do something about the data }那你两串代码连在一起不就是: handleResponse(data); function handleResponse(data){     // do something about the data }那这个跨域的数据不就直接在 handleResponse 里拿到了么,,,但你这里是图片,不是可执行脚本,当然会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值