• Monthly Archives: 12月 2020

使用chrome进行跨域请求调试

赠送不同版本chrome的下载地址:

https://www.chromedownloads.net/chrome64win-stable/

问题背景

在跨平台开发IDE常遇到调试问题,在浏览器进行异步请求时出现如下提示:

Access to XMLHttpRequest at 'https://***********' from origin 'http://www.sway.com.cn' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是因为跨域请求导致的,考虑到安全问题,浏览器默认是不允许进行跨域名访问的。

333

有时候我们在web开发时需要进行跨域调试,会出现上图错误提示。

49版本以前的解决方案

使用chrome的用户,可以找到chrome.exe的程序创建一个快捷方式,并在上图标识的位置加入如下参数:

 --args --disable-web-security --user-data-dir

49版本以后的解决方案

 

111

使用chrome的用户,可以找到chrome.exe的程序创建一个快捷方式,并在上图标识的位置加入如下参数:

 --args --disable-web-security --user-data-dir=C:\Users\****\MyChromeDevUserData

注意:****为您的winows账号目录名,另外还需要在该账号目录侠创建MyChromeDevUserData目录以保存相关的chrome信息。

222启动刚刚配置号的快捷方式,出现如上图标示的提示,即可开启跨域模式。

91版本以前的解决方案(未验证)

有的用户还是不能访问,此时在console控制台里会看到一段背景是黄颜色的字

...Specify SameSite=None and Secure if the cookie should be sent in cross-site...'

Chrome中访问地址chrome://flags/ 搜索samesite 将same-site-by-default-cookies,和SameSite by default cookies这两项设置为Disabled后重启浏览器再运行项目即可解决。该设置默认情况下会将未指定SameSite属性的请求看做SameSite=Lax来处理。

91版本-94版本以前的解决方案(未验证)

在chrome的快捷方式后面加上以下运行参数:

--disable-features=SameSiteByDefaultCookies

或者

--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end

94版本以后的解决方案(未验证)

Chromium项目官网提到在94版本通过命令行禁用设置SameSite默认值的方式会被移除,到时方案1和方案2的方式都将无法使用,后续可通过nginx等代理工具或软件将跨域请求转为非跨域请求来解决改问题。以后如果要在开发环境作业, 老老实实上https也许是最简单的一种办法。

简易搭建局域网内部dns服务器

在做APP开发测试,由于手机不能像电脑修改host文件那样方便的映射dns,所以在局域网进行调试时,需要搭建一台DNS服务器用于给移动设备进行解析。

准备两台最小化Centos 7 服务器,一台用来搭建dns服务器,一台用来测试dns;一台window 10 用来测试dns,机器IP如下:

  • dns 服务器 IP:192.168.122.254
  • linux 客户端IP:192.168.0.71
  • window 客户端IP:192.168.0.254

实现步骤

  • 我们测试的域名:sway.com.cn
  • 使用bind搭建dns服务器
  • 防火墙开启53端口访问
  • 配置客户端的dsn服务
  • 测试dns使用

1、配置部署服务端

在需要搭建dns服务的centos 7机器上操作

  • 安装bind
yum -y install bind  bind-chroot bind-utils

安装完后,相关的配置主要涉及以下几个目录的文件:

/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #拓展配置文件
/var/named/ #zone 配置文件目录

  • named的核心配置文件:/etc/named.conf:

1、修改 listen-on port 53 { 127.0.0.1; }; 为 any

2、修改 allow-query { localhost; }; 为 any

listen-on port 53 { any; };

vim /etc/named.conf
options {
    listen-on port 53 { any; };  #监听0.0.0.0 53端口,ipv4
    listen-on-v6 port 53 { ::1; }; #监听0.0.0.0 53端口,ipv6
    directory   "/var/named";     #zone 目录
    dump-file   "/var/named/data/cache_dump.db"; #服务器存放数据库文件的路径名
    statistics-file "/var/named/data/named_stats.txt";  #
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    allow-query     { any; }; #允许查询
    recursion yes; #运行迭代
    dnssec-enable yes; 
    dnssec-validation yes;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones"; #扩展配置文件
include "/etc/named.root.key";
  • 向拓展配置文件加入您的域名信息:/etc/named.rfc1912.zones
zone "szlz.com" IN {
        type master;
        file "sway.com.cn.zone";
};
  • 在/var/named/ #zone目录创建您的域名解析文件sway.com.cn.zone:
$TTL 1D
@       IN SOA  @ dns.sway.com.cn. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns
dns     A       192.168.122.254
web1    A       192.168.122.8
mail    A       192.168.122.2
        MX      10 mail.sway.com.cn.
test1   A       192.168.0.71
  • 使用named-checkzone命令检测您的配置文件:
named-checkzone
named-checkzone sway.com.cn /var/named/sway.com.cn.zone
  • 启动bind并开机自启动
systemctl start named
systemctl enable named

 

2、配置linux客户端的dns

修改/etc/resolv.conf文件设置dns服务器:

nameserver 192.168.122.254
nameserver 114.114.114.114

 

3、配置windows客户端的dns

修改网卡属性,设置ipv4协议中的dns服务器为:192.168.122.254

4、使用ping命令测试

使用ping dns.sway.com.cn查看解析是否正确即可

5、开启防火墙(如果有开防火墙的话)

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
iptables -A INPUT -p tcp --dport 53 -j ACCEPT

 

close