2 u012149894 u012149894 于 2014.05.15 20:17 提问

请教关于 easyui 的跨域问题

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

1个回答

showbo
showbo   Ds   Rxr 2014.11.19 11: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数据源

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!