java,Serverlet,jsonp,js跨域获取SVG,XML

本文探讨了在Web开发中遇到的跨域问题,特别是在大数据可视化的场景下。通过使用Java Servlet和JSONP技术,解决了从不同源获取SVG和XML文件的挑战,以供Echarts等前端库进行数据处理和展示。
摘要由CSDN通过智能技术生成

从事web相关开发的同学应该不会陌生跨域这个名词,跨域就是……自行百度


同事在实现一个大数据可视化平台时候遇到一个现象,展示端一般与管理端不在一起,展示端中有一个需求是ajax获取xml并将xml对象返回给echarts的回调,: 


require('echarts/util/mapData/params').params.DiySVG = {

    getGeoJson: function (callback) {
 
    //格式化xml文档
       function create_doc(text){
  
            var xmlDoc = null;
            try //Internet Explorer
            {
                xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async="false";
                xmlDoc.loadXML(text);
            }
            catch(e)
            {
                try //Firefox, Mozilla, Opera, etc.
                {
                    parser=new DOMParser();
                    xmlDoc=parser.parseFromString(text,"text/xml");
                }
                catch(e) {}
            }
            return xmlDoc;
        }
//跨域获取xml字符串
        $.jsonp({
            'contentType': "text/html;charset=UTF-8",
            'url': "http://192.168.50.126:8082/DataMapManager/BrowAjax.do",
            'data': {
                dz_type: 'getSvgByName',
                mapname:"暂未用到,测试写的绝对路径",
            },
            'dataType':"jsonp",
            'callbackParameter':"jsonCallback",
            'async':false,
            'type': 'get',
            'success': function (data) {
                console.warn( create_doc( data)  );
                callback(create_doc( data));
            },
            error:function (resp) {
                console.error( resp  );
            }
        });
    }
};
 

java实现方式,由于我是写的一个测试用例,java我用serverlet写了一下:  

@WebServlet(name = "BrowAjax")public class BrowAjax extends HttpServlet {  
    private HttpServletRequest _request;    
   private HttpServletResponse _response;   
    protected void doPost(HttpServletRequest request,  
    HttpServletResponse response) throws ServletException, IOException { 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值