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。。。。。。