zoukankan      html  css  js  c++  java
  • 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中相关的问题。

  • 相关阅读:
    插入排序的算法分析
    SQL的UNION操作
    二分查找的思路
    怎么看吉他简谱
    一句CSS代码杜绝网站iframe挂马
    关于NewFolder.文件夹无法删除的办法
    C#监听USB接入
    C# 系统服务添加安装
    .NET 实现ISAPI过滤器,指定类型文件防下载
    ASP 简单的异或加密方法
  • 原文地址:https://www.cnblogs.com/rixin/p/4085701.html
Copyright © 2011-2022 走看看