什么是跨域访问,JSON&JSONP

http://blog.csdn.net/notechsolution/article/details/50394391

更详细的讲解,关于同源策略等:

http://www.cnblogs.com/JChen666/p/3399951.html

CORS跨域资源共享方式实现ajax跨域:在提供服务端设置response的header,客户端正常使用ajax即可实现跨域访问。

服务端配置:

http://blog.csdn.net/fdipzone/article/details/46390573/

个人实践:

需求简介:

我公司购买了某基金报价厂商的服务,发参数给他们的ajax服务,他们返回给我们一个基金id,我们拿着这个id再打开他们的url就可以看到

基金实时分析情况。目前该厂商的工程师已经明确通知我们,他们的服务已经支持跨域资源共享。

问题:

但我们使用测试html访问他们的服务时总是报错,而且在不同浏览器下现象不同。在ie下就不成功,在chrome上就能成功。

html如下:

 1 <!DOCTYPE HTML>  
 2 <html>
 3 <head>
 4 <script src="jquery-1.8.0.min.js"></script>
 5 </head>
 6 <body>
 7 <script type="text/javascript">
 8     var url = "http://www.xxxx.com/api/adslfjalkfjalfjf";
 9     var data = {page:'1',pageSize:'10',outputType:'json',version:'1',universeIds:'fasfefwa',sectiryDataPoints:'SecId',filters:'CustomCategoryId4',IN:'4747747474'};
10     $.ajax({
11         url: url,
12         data: data,
13         type: "get",
14         dataType:'json',
15         success:function(data){
16             console.log('success');
17             console.log(data);
18         },
19         error:function(er){
20             console.log('error');
21         }
22     }); 
23 </script>
24 </body>
25 </html>

解决:

把dataType改成jsonp就能在ie下取得数据,且在其他浏览器下依然能取到数据。原因不详。。。。。。。

success 回调function中取到的data格式是纯json格式。。。。

目前尚不清楚是不是跨域资源共享如果在ie下访问必须dataType是jsonp。。。。。。

原文地址:https://www.cnblogs.com/mabaishui/p/7079426.html