zoukankan      html  css  js  c++  java
  • 解决NodeJS+Express模块的跨域访问控制问题:Access-Control-Allow-Origin

    在一个项目上想用NodeJS,在前端的js(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错:

    XMLHttpRequest cannot load http://localhost:3000/auth/xxx/xxx. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

    解决代码:

    方案一:
     
    1. var express = require('express');  
    2. var app = express();  
    3. //设置跨域访问  
    4. app.all('*', function(req, res, next) {  
    5.     res.header("Access-Control-Allow-Origin", "*");  
    6.     res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");  
    7.     res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    8.     res.header("X-Powered-By",' 3.2.1')  
    9.     res.header("Content-Type", "application/json;charset=utf-8");  
    10.     next();  
    11. });  
    12.   
    13. app.get('/auth/:id/:password', function(req, res) {  
    14.     res.send({id:req.params.id, name: req.params.password});  
    15. });  
    16.   
    17. app.listen(3000);  
    18. console.log('Listening on port 3000...');  

    方案二: 

     
      1. var express = require('express');  
      2. var app = express();  
      3.   
      4. app.get('/auth/:id/:password', function(req, res) {  
      5.     res.header("Access-Control-Allow-Origin", "*");   //设置跨域访问  
      6.     res.send({id:req.params.id, name: req.params.password});  
      7. });  
      8.   
      9. app.listen(3000);  
      10. console.log('Listening on port 3000...');  
  • 相关阅读:
    新浪微博OAuth2授权错误 error:redirect_uri_mismatch
    [Eclipse]自动注释功能
    android 官网访问不了
    [转]Java开发中的23种设计模式详解
    [转]JAVA Iterator 的用法
    [转] Java集合类详解
    MySQL(root用户)密码重置
    SpringMVC项目接入Springfox实战遇到的问题集合
    linux中mysql完整卸载命令操作
    linux-centos挂载新硬盘操作
  • 原文地址:https://www.cnblogs.com/winyh/p/7052864.html
Copyright © 2011-2022 走看看