我想设置我的Cloud9工作区来处理rails api projet。 repo包含2个项目,rails json api和front(angular app)。
由于cloud9不提供两个外部端口,因此无法在同一工作区上运行它们。 我创建了两个不同的工作区,一个运行rails api,另一个运行角度应用程序(由小节点进程提供)。
一切都很好,除了当我尝试调用api(ajax call => $ http)时,我收到了一个交叉来源请求警告。
XMLHttpRequest cannot load https://workspace-user.c9.io/. The request was redirected to 'https://c9.io/api/nc/auth?response_type=token&client_id=proxy&redirect=http%3A%2F%2Fworkspace-user.c9.io%2F', which is disallowed for cross-origin requests that require preflight.
我该如何防止这种情况?
谢谢
ps:真正的网址不是工作区用户,我确实改变了它。
答案 0 :(得分:3)
让我们说你的域名是:
https://ws1-user.c9.io (page which performs ajax is located here)
https://ws2-user.c9.io (destination url)
在ws2-user.c9.io中打开终端并写:
sudo vim /etc/apache2/sites-enabled/001-cloud9.conf
添加以下行:
Header set Access-Control-Allow-Origin "https://ws1-user.c9.io"
在终端写道:
sudo a2enmod headers
service apache2 restart
现在应该可以了。
答案 1 :(得分:0)
您可以使用特殊的CORS标头指定允许连接的站点。有关详细信息,请参阅:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS