Javascript 否';访问控制允许原点';在ajax请求中,但不是通过单击<;a>;标记链接
我正在使用Javascript 否';访问控制允许原点';在ajax请求中,但不是通过单击<;a>;标记链接,javascript,ajax,node.js,cors,hapijs,Javascript,Ajax,Node.js,Cors,Hapijs,我正在使用HapiJS和Bell对用户进行身份验证。我有一个端点,负责对用户进行身份验证 server.route({ method: ['POST','GET'], path: '/token', config: { auth: 'twitter', handler: function (request, reply) { reply(request.auth.credentials.profile) }
HapiJS
和Bell对用户进行身份验证。我有一个端点,负责对用户进行身份验证
server.route({
method: ['POST','GET'],
path: '/token',
config: {
auth: 'twitter',
handler: function (request, reply) {
reply(request.auth.credentials.profile)
}
}
});
当我有一个指向该端点的
标记链接时,一切正常,我会重定向到twitter进行身份验证,然后我会看到回复。我想要的是通过ajax
请求来实现,这样我就可以使用然后来处理响应
所以我有一些简单的东西:
$.ajax({
method: 'GET',
url: 'http://localhost:8001/token'
}).then(function(data){
console.log('>>>>>>>>>',data);
});
我单击一个按钮并发出请求,但在本例中,我在ChromeXMLHttpRequest上有以下消息无法加载https://api.twitter.com/oauth/authenticate?oauth_token=TPSmxB22abgI2jC8DvEgUxKOc4ZadsSI. 请求的资源上不存在“Access Control Allow Origin”标头。因此不允许访问源站“null”。
知道如何解决此问题吗?因为您的会话来自HapiJS/Bell身份验证过程,因此访问localhost会给您带来CORS头问题。您需要在服务器端附加头文件,无论您将节点服务器旋转到何处。您可以提供一个示例吗?我在文档中找不到相关内容。您无法执行此操作,因为您的服务器正在将请求重定向到Twitter的API,然后该API将重定向回服务器的其他端点。您不能通过XHR执行此操作,因为如果用户未登录Twitter,Twitter将提示他们在最终重定向回您的服务器之前输入凭据,而这是XHR无法完成的。请添加更多详细信息并解释您的答案。
res.header("access-control-allow-origin","client domain including protocol")