我试图让一些
AJAX在两个子域之间工作.
rails.mydomain.com和mydomain.com
在apache中,在/ etc / apache2 / sites-available /我有我的rails.mydomain.com文件:
<VirtualHost *:80> Header add Access-Control-Allow-Origin "http://www.mydomain.com" Header add Access-Control-Allow-Origin "http://www.dev-mydomain.com" </VirtualHost>
然而,每当我尝试从http://www.dev-mydomain.com做一个简单的ajax测试请求,在Chrome中,我得到:“XMLHttpRequest无法加载http://rails.mydomain.com/directory. Origin-Control-Allow-Origin不允许Origin http://www.dev-mydomain.com.
任何人都知道我失踪了什么
解决方法
正如Dahazer的链接指出,最好的选择是设置一个Access-Control-Allow-Origin标头.这绝对不适合生产,但是您可以在开发模式下回发Origin标题.
如果您仍然遇到问题,可能您在响应中没有设置足够多的CORS头.根据我在chrome中进行跨域ajax的经验,(不使用jquery心灵),我还需要设置以下标题:
Access-Control-Allow-Headers : X-Requested-With,Content-Type
鉴于我使用除POST和GET之外的HTTP方法,我也需要设置
Access-Control-Allow-Methods : GET,PUT,POST,DELETE
不过最重要的是,我建议您阅读html5 CORS教程,特别是CORS on the server部分.根据您的具体使用情况,它应该可以让您了解配置CORS的不同方式,无论是在服务器还是客户端(在您的情况下为jquery的ajax配置选项).