探讨跨域请求资源的几种方式
2017-05-09 16:14
225 查看
[转自:http://www.cnblogs.com/dojo-lzz/p/4265637.html]
什么是跨域
JSONP
proxy代理
cors
xdr
由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表(来源)
View Code
参考文献:
javascript跨域资源总结与解决办法
jsonp跨域原理解析
Ajax进行跨域资源方法详解
Ajax POST&跨域 解决方案
HTTP access control
POST请求失败,变成options请求
什么是跨域
JSONP
proxy代理
cors
xdr
由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表(来源)
1 var http = require('http'); 2 var url = require('url'); 3 var fs = require('fs'); 4 var qs = require('querystring'); 5 var request = require('request'); 6 7 http.createServer(function(req, res){ 8 var _url = url.parse(req.url); 9 if (_url.pathname === '/jsonp') { 10 var query = _url.query; 11 console.log(query); 12 var params = qs.parse(query); 13 console.log(params); 14 var f = ""; 15 16 f = params.callback; 17 18 res.writeHead(200, {"Content-Type": "text/javascript"}); 19 res.write(f + "({name:'hello world'})"); 20 res.end(); 21 } else if (_url.pathname === '/proxy') { 22 var proxyUrl = ""; 23 if (req.url.indexOf('?') > -1) { 24 proxyUrl = req.url.substr(req.url.indexOf('?') + 1); 25 console.log(proxyUrl); 26 } 27 if (req.method === 'GET') { 28 request.get(proxyUrl).pipe(res); 29 } else if (req.method === 'POST') { 30 var post = ''; //定义了一个post变量,用于暂存请求体的信息 31 32 req.on('data', function(chunk){ //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中 33 post += chunk; 34 }); 35 36 req.on('end', function(){ //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。 37 post = qs.parse(post); 38 request({ 39 method: 'POST', 40 url: proxyUrl, 41 form: post 42 }).pipe(res); 43 }); 44 } 45 } else if (_url.pathname === '/index') { 46 fs.readFile('./index.html', function(err, data) { 47 res.writeHead(200, {"Content-Type": "text/html; charset=UTF-8"}); 48 res.write(data); 49 res.end(); 50 }); 51 } else if (_url.pathname === '/cors') { 52 if (req.headers.origin) { 53 54 res.writeHead(200, { 55 "Content-Type": "text/html; charset=UTF-8", 56 "Access-Control-Allow-Origin":'http://localhost', 57 'Access-Control-Allow-Methods': 'GET,POST,OPTIONS', 58 'Access-Control-Allow-Headers': 'X-Requested-With, Content-Type,aaaa'/**/ 59 }); 60 res.write('cors'); 61 res.end(); 62 } 63 } 64 65 }).listen(8888);
View Code
参考文献:
javascript跨域资源总结与解决办法
jsonp跨域原理解析
Ajax进行跨域资源方法详解
Ajax POST&跨域 解决方案
HTTP access control
POST请求失败,变成options请求
XDomainRequest - Restrictions, Limitations and Workarounds
XDomainRequest object相关文章推荐
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 转:探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式(总结)
- 探讨跨域请求资源的几种方式
- 跨域请求资源的几种方式
- 什么是JS跨域请求?有几种方式可以实现?请简述其中某一种的实现原理?
- 什么是JS跨域请求?有几种方式可以实现?请简述其中某一种的实现原理?
- 跨域请求的几种实现方式