本文最后更新于 2024-08-29,文章内容可能已经过时。

今天在无意间看到了Pio看板娘插件无法跨域访问json的问题。 jampang.cn/www.jampang.cn是两个域名,虽然它们指向的是同一个ip 为什么同一个目录下会有跨域呢,Typecho设置中有个[站点地址],如果你设置的是jampang.cn那对于访问www.jampang.cn就是跨域了


Nginx

在nginx的配置项中写入

#允许指定域名
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

注意一般[*]写你允许跨域访问的域名。

[*]表示允许任何请求。

修改完记得重启Nginx服务


Aapache

找到配置文件 httpd.conf

#LoadModule headers_module modules/mod_headers.so

去掉#

在指定的Directory写下面的配置

<Directory "/var/www/html">
    AllowOverride None
    Require all granted
    Header set Access-Control-Allow-Origin *
</Directory>

注意一般[*]写你允许跨域访问的域名。

[*]表示允许任何请求。

如果有.htaccess文件

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin: "*"
    Header set Access-Control-Allow-Methods: "GET,POST,PUT,DELETE,OPTIONS"
    Header set Access-Control-Allow-Headers: "X-Requested-With,Content-Type"
</IfModule>

注意一般[*]写你允许跨域访问的域名。

[*]表示允许任何请求。

或者写全局配置,在httpd.conf下面添加

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin: "*"
    Header set Access-Control-Allow-Methods: "GET,POST,PUT,DELETE,OPTIONS"
    Header set Access-Control-Allow-Headers: "Content-Type"
</IfModule>

注意一般[*]写你允许跨域访问的域名。

[*]表示允许任何请求。 详细跨域看:CSDN 修改完记得重启Apache服务


IIS

在IIS控制面板中找到[HTTP响应标头],点进去在右侧点击添加 分两次添加

Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Origin:*

注意一般[*]写你允许跨域访问的域名。

[*]表示允许任何请求。 修改完记得重启IIS服务