$ http.get()调用的Node Express Cross Origin
我做了一个简单的节点服务器,我需要它作为$http.get()
调用的交叉原点,所以我添加所需的标题到app.use
作为详细信息在这个答案。 最后服务器代码是 –
var express = require('express'); var app = express(); var port = process.env.PORT || 3000; app.use(express.static('.')); app.all('/', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next(); }); app.listen(port); console.log('server runs on port: ' + port);
在我的index.html
有angular色$http.get()
调用另一个来源 –
$http.get('http://itunes.apple.com/search', { term: 'johnson' });
但仍然这个调用被浏览器拒绝并返回错误 –
XMLHttpRequest cannot load https://itunes.apple.com/search. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
我怎么能正确地从index.html
调用Cross Origin $http.get
?
您实际上不了解跨源资源共享如何工作。 跨请求请求应该在您请求的服务器上允许,而不是在您服务于您的页面的服务器上。
所以,答案是你不能向苹果网站提出请求,如果他们不允许你这样做的话。
PS您已允许其他网站向您的网站发送请求,只需将此代码添加到您的快速应用中即可:
app.all('/', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next();
- 在Node.js Passport的Google策略上自定义returnUrl
- 鱼鹰RAMLvalidationerror handling
- Node.js / Express / Passport是否有像CanCan for Rails这样的授权模块?
- 如何解码用x-www-form-urlencoded编码的Javascript对象的数组?
- SyntaxError:意外的标识符
- 如何使用NodeJS构buildconfiguration并表示?
- NodeJS Express – 单独处理404(Not Found)和405(Method Not Allowed)
- 为什么不select(mongoose查询)工作?
- node.js进程的内存消耗不断增加