解決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.

方案

解決代碼如下:

var express = require('express'); var app = express(); //設置跨域訪問 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",' 3.2.1') res.header("Content-Type", "application/json;charset=utf-8"); next(); }); app.get('/auth/:id/:password', function(req, res) { res.send({id:req.params.id, name: req.params.password}); }); app.listen(3000); console.log('Listening on port 3000...');


http://www.tuicool.com/articles/vYBR3y


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM