Nodejs和ajax不同,nodejs中ajax跨域和jsonp跨域

JSONP跨域获取数据

1.前端代码:

Document

异步获取数据

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);

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.前端代码

Document

异步获取数据

var log=function (obj) {

console.log(obj);

}

var get=document.getElementById('get');

get.addEventListener('click',function () {

var xhr=new XMLHttpRequest();

xhr.οnlοad=function () {

log(this.responseText);

}

xhr.open('post','http://192.168.0.250:9000/bannerUrl',true);

xhr.send();

},false);

2.nodejs代码:

//获取banner url

router.post('/bannerUrl',function (req,res,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, next) {

res.setHeader('Access-Control-Allow-Origin', '*');

res.setHeader('Access-Control-Allow-Methods', 'GET, POST');

res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization');

next();

});

标签:function,跨域,get,res,ajax,params,jsonp,var,log

来源: https://www.cnblogs.com/baimeishaoxia/p/12625151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值