AJAX跨域问题
跨域介绍
什么是跨域
- 跨到不同的域名(服务器)之间的相互的资源访问。
- 当协议、域名、端口号,任一一个不相同,即他们是不同域。
- 正常情况加,因为浏览器安全问题,不同域资源是不允许访问的。
解决方案
- 什么情况下会使用跨域
- 三种解决方案:
- 代理方案:前端页面访问本地的服务器,本地的服务器访问其他域的资源,他是服务器端的跨域问题解决。
- jsonp方案:Script元素有开放策略,网也可以得到从其他来源动态产生的JSON资料。而这种模式就是所谓的JSONP。在Script标签中,使用src来引用访问路径。JSONP抓到的资料不是json,耳饰JavaScript,解析也是使用JavaScript直译器,而非JSON解析器。
- XHR2:XMLHttpRequest Level2 ,踏实html5提供的方法,一般在移动端开发使用。
Jquery解决跨域操作
- 在Jquery中,我们可以使用 $.ajax , $.getJSON , $.getScript来解决跨域问题。
$.ajax解决跨域操作
- 将$.ajax中Setting的dataType可设置为jsonp。
- json和jsonp格式的区别:
- Json格式: {value1,value},{name:value}
- jsonp格式:callback(json)
- jsonp返回的格式:
- $.ajax完成跨域操作代码
$.getJSON解决跨域问题
var url = "http://localhost:8080/jquery_ajax/product?callback=?"
- 再url后追加callback=? 系统会自动获取,直接填?即可