什么是跨域访问,JSON&JSONP

时间:2021-07-10 23:14:49

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

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

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

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

服务端配置:

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

个人实践:

需求简介:

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

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

问题:

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

html如下:

 <!DOCTYPE HTML>
<html>
<head>
<script src="jquery-1.8.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
var url = "http://www.xxxx.com/api/adslfjalkfjalfjf";
var data = {page:'1',pageSize:'10',outputType:'json',version:'1',universeIds:'fasfefwa',sectiryDataPoints:'SecId',filters:'CustomCategoryId4',IN:'4747747474'};
$.ajax({
url: url,
data: data,
type: "get",
dataType:'json',
success:function(data){
console.log('success');
console.log(data);
},
error:function(er){
console.log('error');
}
});
</script>
</body>
</html>

解决:

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

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

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