【续】常见跨域请求方式

最后通过命令行nginx -s reload启动nginx

// index.html
var xhr = new XMLHttpRequest();
// 前端开关:浏览器是否读写cookie
xhr.withCredentials = true;
// 访问nginx中的代理服务器
xhr.open('get', 'http://www.domain1.com:81/?user=admin', true);
xhr.send();

// server.js
var http = require('http');
var server = http.createServer();
var qs = require('querystring');
server.on('request', function(req, res) {
    var params = qs.parse(req.url.substring(2));
    // 向前台写cookie
    res.writeHead(200, {        'Set-Cookie': 'l=a123456;Path=/;Domain=www.domain2.com;HttpOnly'   // HttpOnly:脚本无法读取
    });
    res.write(JSON.stringify(params));
    res.end();
});
server.listen('8080',function(){
    console.log('Server is running at port 8080...');
});


总结:


-    CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案

-    JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

-    不管是Node中间件代理还是nginx反向代理,主要是通过同源策略对服务器不加限制。

-    日常工作中,用得比较多的跨域方案是cors和nginx反向代理


评论 抢沙发

表情
  1. 来自广东广州(qwertyuiop)用户的评论:2020-03-12 11:34:02
    有没有最新的版本,可以更新下吗?(#4)

  2. 来自广东广州(qwertyuiop)用户的评论:2020-03-11 17:01:06
    博客做的不错(#3)

  3. 来自广东广州(huangshaomo)用户的评论:2019-12-30 15:35:23
    (#2)

  4. 来自广东广州(huangshaomo)用户的评论:2019-12-30 15:26:13
    11111111(#1)

首页上一页12下一页尾页