跨域请求

上一篇写的学习原生Ajax 和简易搭建nodejs服务器 中所写到的例子都是把程序放到本地服务器去运行的,主要就是因为本地打开程序去请求服务器的内容就会产生跨域请求,这是浏览器所不允许的,如打开浏览器按F12打开控制台就会看到报下列错误。这一篇就来讲讲跨域请求处理。

一、什么是跨域请求

首先,域=协议名+主机名+端口号,只有这三部分相同才能称为是相同的域访问。如下举例:

http://www.baidu.com:80和ftp://www.baidu.com:80           不同域,协议不一样

http://www.baidu.com:80和http://www.xiaomi.com:80           不同域,主机名不一样

http://www.baidu.com:80和ftp://www.baidu.com:8080           不同域,端口号不一样

http://www.baidu.com:80/a.html和ftp://www.baidu.com:80/b.js           同域

二、跨域请求的前因后果

为什么浏览器要限制跨域请求,其中最主要的原因就是安全性问题,比如CSRF攻击。但是,既然不安全,为什么我们又要跨域请求呢?原因是有时为了服务器便于管理和减轻服务器压力,公司会把不同的资源放在不同的服务器上,这样就存在很多子域,这时比如A子域的html资源要去访问B子域的图片资源就会出现跨域请求了。

三、解决处理跨域请求

1、常用的处理方式是JSONP。ajax请求不同域会出现跨域请求,无访问权限,但平时在HTML页面写的

你可能感兴趣的:(跨域请求)