我现在正遇到一个奇怪的CORS问题.
这是错误消息:
XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...]
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Run Code Online (Sandbox Code Playgroud)
两台服务器:
有什么想法可能是什么问题?
编辑:
而且...端口是问题所在.谢谢你的回答:)
如果有人也使用Python瓶服务器,你可以按照这篇文章给出的答案来解决CORS问题: Bottle Py:为jQuery AJAX请求启用CORS
每当我制作一个webapp并且我遇到CORS问题时,我就开始煮咖啡了.拧紧它一段时间后,我设法让它工作,但这次不是,我需要帮助.
这是客户端代码:
$http({method: 'GET', url: 'http://localhost:3000/api/symbol/junk',
headers:{
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
'X-Random-Shit':'123123123'
}})
.success(function(d){ console.log( "yay" ); })
.error(function(d){ console.log( "nope" ); });
Run Code Online (Sandbox Code Playgroud)
服务器端是带有快速应用程序的常规node.js.我有一个名为cors的扩展名,它以这种方式表达:
var app = express();
app.configure(function(){
app.use(express.bodyParser());
app.use(app.router);
app.use(cors({origin:"*"}));
});
app.listen(3000);
app.get('/', function(req, res){
res.end("ok");
});
Run Code Online (Sandbox Code Playgroud)
如果我做
curl -v -H "Origin: https://github.com" http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)
它回来了:
* Adding handle: conn: 0x7ff991800000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7ff991800000) send_pipe: 1, …Run Code Online (Sandbox Code Playgroud) 我试图理解为什么CORS正在以它的工作方式工作.
当我从了解到这个职位,当从网页www.a.com使得AJAX请求www.b.com,那么它的www.b.com是决定是否请求应该被允许.
但是在这种模型中客户端的确切安全性是什么?例如,如果黑客成功向我的页面注入XSS脚本,那么它会向其域发出一个AJAX请求来存储用户数据.因此,黑客的域名将允许这样的请求.
我认为www.a.com应决定允许请求的域名.因此理论上,在头文件Access-Control-Allow-Origin中,我想提出允许AJAX CORS请求的域的完整列表.
有人可以解释当前CORS实现处理的安全问题吗?