关于在JS中AJAX导致跨域问题的解决

在部署一个原声的前端项目的时候,请求该服务器后端接口时发现出现了CORS跨域的问题,但是服务端已经做了同源策略的兼容,常见问题,遂记录。

报错信息:

XMLHttpRequest cannot load http://xxxx.cn. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource. 

错误分析:

  1. 这是由于ajax的跨域访问引起的
  2. ajax没有经过服务器而直接访问请求,使用了file协议

通俗的说,就是没有在服务器环境中运行含有ajax方法的页面,而是类似于浏览器直接打开的形式运行该页面,这样子并没有使用http协议,而是直接使用了file协议。

本地页面请求远程服务端时,默认使用http://协议,但是本地页面中的ajax方法请求本地时,默认的是file:///协议,而file协议是不予许跨域请求的,所以在请求时,请求的URL格式类似于:

http://xxxx.cn/xxxxx

在请求的url前一定要加上http://

原文地址:https://www.cnblogs.com/lishanlei/p/10707853.html