跨域
当发起请求的协议号、域名、端口号中有一个不一样时就会导致跨域
跨域解决方案
分为两个方面,是否可以修改服务器端。
可以修改服务器端:cors方案、jsonp方案
不可以修改服务器端:
使用代理:
因为跨域主要是针对浏览器和服务器端,然而服务器和服务器之间没有跨域,所以中间加一个代理(自己的服务器),我们通过代理去获取真正的资源,即可解决跨域
修改服务器:
cors方案:
服务器在响应头中设置了 Access-Control-Allow-Origin 为 * (最好不要设置为 * )或者是服务器在响应头中设置了 Access-Control-Allow-Origin 为 你发起请求的地址(比如: http://xxx.xx.x)
jsonp方案:
因为image、script标签引入url的方式不会引发跨域问题,使用使用script标签,请求的src会返回一个立即执行的函数,需要在前端准备一个函数,后端返回对应的函数名和数据作为参数,这样前端在解析完script之后就会执行该函数
但是jsonp方案只能用于get请求,因为script只能获取get请求