idea上应该会帮你起一个localhost的服务,这个时候发起xhr就是从localhost这个域名,请求的服务也是localhost的话就不存在跨域。但是你直接打开html文件,发起xhr源的域名不是localhost的了,就被认为是跨域请求了。