Ajax跨域问题解决办法nodejs
jsonp(百度搜索提示数据跨域解决)
jsonp实现原理:动态的创建script标签,利用src属性访问浏览器上的任意资源,不产生跨域 实现:使用script的src访问接口数据,并通过一个函数进行接收
缺点:只能有get请求,因为,传入的函数参数是通过url地址传递的
jquery中跨域jsonp解决需要在 dataType中加上jsonp(后台如果定义接收的函数名就写,如果没定义就可省略) jsonp中加上后台接收的函数(视情况而定) jsonpCallback中加上后台返回给前端的函数
cors资源共享
后端设置cros资源共享 设置允许跨域的域名,*代表允许任意域名跨域
router.al1("*", function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Contro1-Allow-Headers", "content-type");
res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
if (req.method.toLowerCase() == 'options ')
res.send(200);
next();
})
也可以在路由内部设置
app.get('/zhihu/questions/:questions/name/:name', (req, res) => {
res.header("Access-Control-Allow-Origin", "*");
var questions = req.params.questions;
var name = req.params.name;
res.send({
questions,
name
})
})
|