跨域请求


什么是JSONP —— 是一个非官方协议,约定发送请求的参数中如果包含指定的参数,默认为callback.即JSONP请求。
服务器发现是JSONP请求的时候,将返回值由原来的JSON对象改成js代码。
js代码的内容是函数调用的形式,它的函数名是callback的值,它的函数的参数是原先json对象。
由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本(如 JavaScript)对不同域的服务进行跨站调用(通常指使用XMLHttpRequest请求)。

解决思路
1、浏览器可选择支持跨域。(浏览器可设置为支持跨域)
2、隐藏跨域 :使用代理。使用代理可分为浏览器使用代理还是服务器使用代理。

 JSONP的实现原理与工作机制如下图

1、被调用方解决支持跨域,有三种方法:

1)服务端实现

2)NGNIX配置

3)APACHE配置

2、调用方解决支持跨域

原文地址:https://www.cnblogs.com/LinxiHuang/p/9247859.html