跨域问题
何为跨域:
跨域的原理是浏览器的同源策略.不同源即为跨域.
产生的原因:
浏览器中的安全策略不同源即为跨域.(同源:协议,域名,端口一致)
jsonp:
jsonp原理:
利用javascript标签中的src属性不存在同源限制.核心是服务器后台返回一个函数的调用,同时并传入后台数据.
CORS:
CORS中文意思是跨域资源共享
,需要服务器端进行 CORS
配置;CORS 发送的是真正的Ajax请求,CORS 支持Ajax的跨域如果要启用 CORS 跨域资源共享,关键在于 服务器端,
只要 服务器支持CORS跨域资源共享,则 浏览器肯定能够正常访问 这种 CORS 接口;而且,客户端在 发送 Ajax的时候,就像发送普通AJax一样,没有任何代码上的变化;
对于Node来说,如果想要开启 CORS 跨域通信,只需要安装cors
的模块引入即可.
方法:
下载安装引入: 在 API 服务器端,启用 CORS 跨域资源共享
1 const cors = require('cors') 2 app.use(cors())
或:
// No 'Access-Control-Allow-Origin' header is present on the requested resource. app.all('*', function (req, res, next) { res.header('Access-Control-Allow-Origin', '*') next() })