北冥有大大鱼 2014-05-15 12:17 采纳率: 0%
浏览 3394

请教关于 easyui 的跨域问题

在一个php页面系统中嵌入一个easyui页面,在显示datagrid时,只出现表头,不能出现其内容,目前在火狐29.0以前的版本都不能读出数据,包括主流的ie,谷歌等都不能读取数据,最后查询到是这2个系统不是同一个网域造成浏览器的限制请求,网上有说用jsonp可以处理,但是它怎样与easyui的datagrid整合,而且请求一改,我整个系统都要随之更改,有没有好的解决方法??

  • 写回答

1条回答 默认 最新

  • 斯洛文尼亚旅游 2014-11-19 03:20
    关注

    先用jquery的ajax指定dataType为jsonp加载好数据,调用datagrid的loadData方法加载jsonp返回的数据

        $.ajax({ url: 'data.asp', dataType: 'jsonp', success: function (data) {
        $('#dg').datagrid('loadData', data);
    }, error: function () { alert('动态页有问题') }
    });
    

    或者自定义loader对象

    <table class="easyui-datagrid" title="easyui datagrid使用jsonp数据" style="width:700px;height:250px"
    

    data-options="fitColumns:true,collapsible:true,
    loader:function(param,success,error){
    $.ajax({ url: 'data.asp', dataType: 'jsonp', success: function (data) {
    success(data);
    }, error: function (xhr) {error(xhr.responseText) }
    });}" id="dg">

    DEMO:easyui datagrid跨域加载jsonp数据源

    评论

报告相同问题?