跨域无法请求原理和解决方案(一):JSONP

首先我们知道Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。

要知道为何跨域会无法请求及原理,这涉及到浏览器的同源策略。

同源策略
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

当协议 + 域名 + 端口相同时,浏览器会判断这是同源的请求,当中任意一个不同时则是非同源请求,这种情况请求会被拦截。

解决方案:JSONP
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的

你可能感兴趣的:(解决方案)