【问题标题】:Set up nginx to allow cross-domain request for subdomain设置nginx允许跨域请求子域
【发布时间】:2013-12-03 09:37:42
【问题描述】:

我有两个域:

domain.com sub.domain.com

domain.com 需要向 sub.domain.com 发出 ajax 请求。我意识到如果请求被硬编码为 sub.domain.com,浏览器会阻止这个。我尝试了以下 nginx conf:

server {
    server_name domain.com;

    rewrite ^/api/(.*)$ http://sub.domain.com/api/$1; }

但是,我仍然在浏览器(Chrome)中收到以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

如何设置 nginx 以指示浏览器允许 domain.com 和 sub.domain.com 之间的跨域请求?

谢谢!

【问题讨论】:

    标签: nginx cross-domain


    【解决方案1】:

    我认为您需要在位置或服务器块内创建它

    server {
        server_name example.com;
        add_header Access-Control-Allow-Origin sub.example.com; # < this is the needed header
        # rest of the configuration
    }
    

    【讨论】:

    • 如果我在 localhost 上进行测试,这项工作是否可行?我在 localhost 上的域例如:8080
    • 是的,它应该可以正常工作,您也可以将其设置为允许“*”而不用担心域名
    • 它不工作,也不与域不带 * :( 也许这在某种程度上没有达到这个设置,但我想不出如何检查
    • 在浏览器开发工具中检查响应头,chrome和ff默认都有(通常是f12,检查网络选项卡)
    • 谢谢, - 我看到“HTTP/1.1 301 Moved Permanently”这一行,然后在另一行是“Location: https:// ...”所以它被重定向了。而不是我会尝试从那里继续前进:)
    猜你喜欢
    • 2020-07-22
    • 2012-11-03
    • 2015-10-11
    • 2016-03-03
    • 2012-08-01
    • 2013-03-24
    • 2018-12-28
    • 2011-10-08
    • 2021-09-11
    相关资源
    最近更新 更多