• 什么是跨域访问,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。。。。。。

  • 相关阅读:
    简直不敢相信...
    halcon 保存Region [原创]
    VS2015 下载链接
    C#【数据转换】十进制yte[]相互转换
    C# 复制窗体问题完美解决办法
    TextBox 保持固定长度,添加新行滚动到最后,跨线程。
    mysql isnull
    C#跨线程访问控件[我的记录]
    C# 常用类-IO-ClassExcelExport
    C# 常用类-IO-ClassXML
  • 原文地址:https://www.cnblogs.com/mabaishui/p/7079426.html
Copyright © 2020-2023  润新知