关于请求必应图片API的跨域问题

必应每天都会更新一张背景图片,如果我们想要在自己的网站中每天动态得更新这种图标就需要用到API去请求,必应官方API
请求实例:
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN
参数说明:

参数名称 是否必需 可选值 参数说明
format js,xml 返回数据格式,不存在返回xml格式
idx 0(今天),-1( 截止中明天 (预准备的)),1(截止至昨天,类推(目前最多获取到7天前的图片)) 请求图片截止天数
n 1~8 返回请求数量,目前最多一次获取8张
mkt zh-CN,… 地区

复制上面得地址到浏览器

url就是图片地址,拼接上域名https://cn.bing.com就可以得到图片
在实际用到自己的html中,有跨域的问题

$.ajax({type: "get",url: "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN",success: function (response) {console.log(response);}
});


试过jsonp和CORS效果都不是很好。

解决办法

我们知道,用一台服务器去请求另外一台服务器不会有跨域问题,所以我们这里使用node创建一台服务器,把请求到的数据再返回给客户端。

const express = require('express')
const request = require('request')
const app = express()
app.use((req, res, next) => {res.header('Access-Control-Allow-Origin', '*')res.header('Access-Control-Allow-Headers', 'X-Requested-With, Authorization')res.setHeader('Content-Type', 'application/json;charset=utf-8')res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With')res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')res.header('X-Powered-By', ' 3.2.1')if (req.method == 'OPTIONS'){res.send('ok')return} next()
})
const imgURL = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN'
request(imgURL, function (error, response, body) {console.error('error:', error); // Print the error if one occurredconsole.log('statusCode:', response && response.statusCode); // Print the response status code if a response was receivedconsole.log('body:', body); // Print the HTML for the Google homepage.app.get('/', (req, res) => {res.send(body)})
});
app.listen(80, _ => {console.log('服务器启动成功!')
})

在地址栏中输入http://127.0.0.1/

跨域请求到
然后就可以在html文件中使用

<body><img src="" alt=""><script>$.ajax({type: "get",url: "http://127.0.0.1/",success: function (response) {console.log(response);console.log(response.images[0].url);$('img').attr('src', 'https://cn.bing.com'+response.images[0].url)}});</script>
</body>

node解决关于请求必应图片API的跨域问题相关推荐

  1. Vuejs模拟Ajax请求接口(天气预报API)跨域问题 - 案例篇

    vuejs的Ajax跨域请求问题一直都是前端人员开发vue项目进程中经常遇到的不得不解决的热门问题,也是个心病. 首先看一下,页面 报错内容提示: Access to XMLHttpRequest a ...

  2. 谷歌插件开发ajax请求,Chrome扩展开发,跨域请求API

    起因 这次问题是从Btools更换获取数据方式开始的,因为B站收藏夹在前台页面返回的数据中删除了失效视频的封面和标题,导致原来的程序无法获取视频信息. 于是我就想如果请求收藏夹的API,是否可以获取这 ...

  3. Vue2前端请求API数据跨域问题解决

    Vue2前端请求API数据跨域问题解决方法 前端:Vue2 接口使用:API 问题报错提示: Access to XMLHttpRequest at 'http://localhost:9090/ec ...

  4. 图片裁剪工具vueCropper跨域解决

    图片裁剪工具vueCropper跨域解决 1.报错原因:本项目的图片放在亚马逊,需求是直接拿到网络图片进行裁剪 2.解决:将图片转化成base64 Vue.prototype.getBase64Img ...

  5. corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求

    vue项目CORS跨域请求500,post请求变options请求,到底是什么情况. 提示:以下内容是一个非专业开发的我对跨域的理解,并不10分准确. 一.先介绍为什么明明发送的是Post请求,为什么 ...

  6. ajax 跨域请求数据,JQuery Ajax执行跨域请求数据的解决方案

    JQuery Ajax执行跨域请求数据的解决方案 今天前端因为需要ajax调用两个不同的项目,请求域不一样,所以涉及ajax跨域的问题 ,其实很简单,具体如下 原来的ajax请求如下: $.ajax( ...

  7. 图片转base64跨域问题

    vue图片转base64跨域问题,亚马逊存储 1.问题说明:如果资源存在是放在国内(如七牛)在转base64的时候不会发生跨域,但本项目存储空间选择的是亚马逊S3,在转化的时候出现了跨域 2.解决 2 ...

  8. Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决

    文章目录 一.参考资料 二.运行环境 三.Vue2插槽 3.1 默认插槽 3.2 具名插槽 3.3 作用域插槽 ES6解构赋值概念 & 作用域插槽的解构赋值 3.4 动态插槽名 四.GitHu ...

  9. 22-CMS前端页面查询开发-Api调用-跨域解决

    跨域问题解决 测试 上边的代理 ,结果 报错如下 : No 'Access-Control-Allow-Origin' header is present on the requested resou ...

最新文章

  1. gRPC 的 4 种基础通信模式
  2. 2018.07.17 洛谷P1368 工艺(最小表示法)
  3. Docker中部署mysql后SpringBoot连接时提示表不存在(修改表名忽略大小写)
  4. [转 TDD] 如何坚持TDD:使用者出现的问题以及解决方案
  5. .NET 程序集单元测试工具 SmokeTest 应用指南
  6. php centos mysql_Linux+Apache+PHP+MySQL服务器环境(CentOS篇)
  7. 85. php 绘图体系
  8. 第 4 章 容器 - 030 - 实现容器的底层技术
  9. 最新VSCode格式化代码不换行
  10. redis的配置文件修改
  11. 在linux终端绘图,Boxes - 在Linux终端中绘制ASCII艺术盒子和图形
  12. 从头开始搭建kubernetes集群+istio服务网格(3)—— 搭建istio
  13. [OpenGL] 非真实感渲染(NPR)的几种效果demo(水墨画/漫画/铅笔画)
  14. C语言计算大写字母的个数
  15. winwods 10 移动硬盘无法弹出
  16. Unity-网络开发(三)
  17. ps4和php,PS4《战神》通关心得分享与给新手的游玩建议
  18. Python爬虫之爬取网络小说并在本地保存为txt文件
  19. 转录组入门(5): 序列比对
  20. matlab自动排课,matlab数学建模排课

热门文章

  1. Raid Card CC(consistency check )
  2. STM32学习笔记一一ADC
  3. Hyper-V导出虚拟机/导入虚拟机步骤(克隆),以及克隆之后设置静态IP无效的解决办法
  4. 自然可视图是什么意思?
  5. 下载refseq序列
  6. 百度地图坐标增强现实 (雷达效果)附全国离线地图
  7. 计算机机房标准pdf,计算机专业机房建设标准.pdf
  8. 计算机课教案评语,信息技术教学的关键环节之三:教学评价
  9. wordpress v3.3.1空间上传php,怎么上传wordpress到虚拟主机
  10. KANO模型以及产品经理的素质模型