node简单解决跨域问题

来源:互联网 发布:linux sendto 编辑:程序博客网 时间:2024/06/05 05:17

有一个node.js服务如下

'use strict';var http=require('http');var server = http.createServer(function (req,res) {    res.end("hello")});server.listen(8082);console.log('Server is running at http://127.0.0.1:8082/');

在前端页面向该URL直接请求,浏览器会报出如下错误

Failed to load http://localhost:8082/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

意思是让我们设置 ‘Access-Control-Allow-Origin’请求头才可以拿到结果,那么我们设置一下,添加一条语句

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

完整如下:

'use strict';var http=require('http');var server = http.createServer(function (req,res) {    res.setHeader('Access-Control-Allow-Origin', '*');    res.end("hello")});server.listen(8082);console.log('Server is running at http://127.0.0.1:8082/');

在前端页面通过jquery再次进行请求

    var url='http://localhost:8082'    $.ajax(url).done(function(res){        alert(res);    })

成功!

用于本地开发测试,实际应用中可使用白名单,把’*’替换成允许的域名,如

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
原创粉丝点击