加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nodejs中ajax跨域和jsonp跨域

发布时间:2020-12-16 01:32:44 所属栏目:百科 来源:网络整理
导读:JSONP跨域获取数据 1.前端代码: !doctype htmlhtml lang="en"head meta charset="UTF-8" titleDocument/title/headbodybutton id="get" 异步获取数据/buttonscript src="js/des/jquery-2.2.4.js"/scriptscript var log=function (obj) { console.log(obj);

JSONP跨域获取数据

1.前端代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button id="get" >异步获取数据</button>
<script src="js/des/jquery-2.2.4.js"></script>
<script>
    var log=function (obj) {
        console.log(obj);
    }
    var get=document.getElementById('get');
    get.addEventListener('click',function () {
        $.getJSON('http://192.168.0.250:9000/bannerUrl?callback=?',function (data) {
            log('result data:'+data.name);
        });

    },false);


</script>
</body>
</html>

2.nodejs代码

var express = require('express');
var router = express.Router();
var urllib=require('url');

//获取banner url
router.get('/bannerUrl',function (req,res,next) {
  var data = {'name': 'jifeng','company': 'taobao'};
  var params=urllib.parse(req.url,true);
  //console.log('请求1:'+params);
  if (params.query && params.query.callback) {
    //console.log('请求2:'+params.query);
    var str =  params.query.callback + '(' + JSON.stringify(data) + ')';//jsonp
    res.send(str);
  } else {
    res.send(JSON.stringify(data));//普通的json
  }
});

POST跨域获取数据

1.前端代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button id="get" >异步获取数据</button>
<script>
    var log=function (obj) {
        console.log(obj);
    }
    var get=document.getElementById('get');
    get.addEventListener('click',function () {

        var xhr=new XMLHttpRequest();
        xhr.onload=function () {
            log(this.responseText);
        }
        xhr.open('post','http://192.168.0.250:9000/bannerUrl',true);
        xhr.send();
    },false);


</script>
</body>
</html>

2.nodejs代码:

//获取banner url
router.post('/bannerUrl',next) {
  res.setHeader('Access-Control-Allow-Origin','http://192.168.0.250:3001');
  res.send({name:'wzh'});

});

Nodejs解决所有跨域请求

1.nodejs code:

app.use(function(req,'*');
  res.setHeader('Access-Control-Allow-Methods','GET,POST');
  res.setHeader('Access-Control-Allow-Headers','X-Requested-With,content-type,Authorization');
  next();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读