CROS实现跨域访问

今天做了关于使用CROS做跨域访问的实验。

具体的配置如下,

有一个在localhost:80的nginx的简单html。调用如下:

$.get('http://localhost:3000/tests').done(function(res){
    console.log(res);
}).fail(function(jqXHR){
    console.log('failed', jqXHR);
});

 

有一个在localhost:3000/tests的nodeJs应用,简单的routes如下:

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

/* GET tests. */
router.get('/', function(req, res) {
      res.send({'name':'From NodeJs'});
});

module.exports = router;

在本地测试调用时,无法得到相应的数据,chrome会报错如下:

XMLHttpRequest cannot load http://localhost:3000/tests. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 

正确的方法是在nodeJs里面加入准许访问的头部,如下:

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

/* GET tests. */
router.get('/', function(req, res) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost');
      res.send({'name':'From NodeJs'});
});

module.exports = router;

 为了响应更多的CROS请求,需要实现nodeJs中的OPTIONS请求,可以参照stackoverflow中相关的问题。

转载于:https://www.cnblogs.com/rixin/p/4085701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值