Node/Expressjs '没有Access-Control-Allow-Origin报头'Twit
Node/Expressjs 'No Access-Control-Allow-Origin header is present' Twitter API
我使用Node with Express与Twitter和Express -cors模块的Twitter API应用程序。
我得到了一切与jQuery工作,我现在正试图让它与香草JS工作。
我得到控制台消息"XMLHttpRequest不能加载https://api.twitter.com/1.1/search/tweets.jsonq=%23cats&callback=?"请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://127.0.0.1:3000'。响应的HTTP状态码为404。"
无论有没有callback参数,都会发生这种情况。
下面是相关的Node代码:
var express = require('express'),
cors = require('express-cors'),
Twit = require('twit'),
path = require('path');
var T = new Twit({
consumer_key: ''
, consumer_secret: ''
, access_token: ''
, access_token_secret: ''
})
var app = express();
app.use(cors({
allowedOrigins: [
'twitter.com'
]
}))
app.get('/api/search/:hashtag', function(req, res){
T.get('search/tweets', { q: '#cats', count: 5 }, function(err, data, response) {
res.jsonp(data); // jsonp or json, neither seem to work
console.log(data)
});
});
app.param('hashtag', function(req, res, next, hashtag){
req.hashtag = hashtag;
next();
});
AJAX调用如下:
document.getElementById("submitButton").addEventListener("click", function(){ getCORS(url, success); });
function getCORS(url, success) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onload = success;
xhr.send();
return xhr;
}
getCORS('https://api.twitter.com/1.1/search/tweets.jsonq=%23cats', function(request){
response = request.currentTarget.response || request.target.responseText;
console.log(response);
});
它甚至可以在没有express-cors模块的jQuery版本中工作。我遗漏了什么?
看起来您安装了两次cors中间件。看看去掉第一个app.use(cors())
是否能修复它。然后您可以尝试使用curl进行测试。curl -v -H "Origin: https://twitter.com" http://localhost:3000/
用您正在使用的端口替换端口3000。
相关文章:
- 返回/从Twit's客户端.get
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- Twit API 回复并没有真正回复
- Nodejs Twit 模块在停止流时出错
- 节点保存错误“;可以't在它们被发送之后设置报头”;
- 如何获得用户'使用node.js twit的twitter流
- HTTP_ORIGIN报头没有通过jquery ajax发送
- 在c#中为套接字的响应添加报头
- 客户端在接收到"Location"后如何处理JavaScript ?HTTP报头
- Grunt请求报头字段Access-Control-Allow-Headers不允许授权
- SendGrid云模块:不能发送报头参数对象
- 如何在nodejs的快速路由中设置报头
- pre - flight响应中的Access-Control-Allow-Headers不允许请求报头字段Access-
- XMLHTTPRequest为CORS设置正确的报头
- 传递国家代码作为http报头的一部分
- 如何从SAPUI5的HTTP响应中获取自定义报头
- 当使用AJAX和mod_rewrite时,报头和POST数据消失
- 如何从响应中获取报头
- 如何在设置报头后返回字符串给客户端
- Node/Expressjs '没有Access-Control-Allow-Origin报头'Twit