2015-02-11 5 views
0

Я использую JQuery EasyUI's datagrid - это очень простая реализация.Невозможно загрузить JQuery EasyUI datagrid с использованием подхода JavaScript

Если я использую встроенный подход к загрузке в данных все в порядке, и показывают данные (обратите внимание на JSON API работает так, как я позволил CORS на сервере, так что это не проблема):

<table class="easyui-datagrid" 
     data-options="url:'https://www.driverlive.co.uk/rest/api/PushMessage/GetPushDriverMessagesList?DeviceId=a99f8a977696bfb9&DateFrom=2014-10-27T00:00:00&DateTo=2015-11-11T00:00:00',method:'get',singleSelect:true,fit:true,fitColumns:true"> 
    <thead> 
     <tr> 
      <th data-options="field:'PushDriverMessageDBID'" width="80">Item ID</th> 
      <th data-options="field:'PushDriverMessageGuid'" width="100">PushDriverMessageGuid</th> 
      <th data-options="field:'AppKey',align:'right'" width="80">AppKey</th> 
      <th data-options="field:'PushNotificationMessage',align:'right'" width="300">PushNotificationMessage</th> 
      <th data-options="field:'Sender'" width="150">Sender</th> 
      <th data-options="field:'MessageDated',align:'center'" width="50">MessageDated</th> 
     </tr> 
    </thead> 
</table> 

Если я попытаюсь загрузить JavaScript-файл, я не получаю никаких данных, но я не могу понять почему?

// Dispatching DataGrid 
var JSONDispatchingURL = "https://www.driverlive.co.uk/rest/api/PushMessage/GetPushDriverMessagesList?DeviceId=a99f8a977696bfb9&DateFrom=2014-10-27T00:00:00&DateTo=2015-11-11T00:00:00"; 
     $('#DGDispatching').datagrid({ 
      url: JSONDispatchingURL, 
      columns: [[ 
       { field: 'PushDriverMessageDBID', title: 'PushDriverMessageDBID', width: 100 }, 
       { field: 'PushDriverMessageGuid', title: 'PushDriverMessageGuid', width: 100 }, 
       { field: 'AppKey', title: 'AppKey', width: 100 }, 
       { field: 'PushNotificationMessage', title: 'PushNotificationMessage', width: 100 }, 
       { field: 'Sender', title: 'Sender', width: 100 }, 
       { field: 'MessageDated', title: 'MessageDated', width: 100} 
      ]] 
     }); 

У меня есть один и тот же результат с JSFiddle здесь: http://jsfiddle.net/b6fxs2v2/1/

Я следовал инструкции здесь: http://www.jeasyui.com/documentation/datagrid.php, так что я немного потерял ...

ответ

0

OK. Я запустил Fiddler, и это показало, что JQuery EasyUI вызывал службу с помощью POST, а не GET. Поэтому API REST ответил 405. Ответ был конкретно {«Сообщение»: «Запрошенный ресурс не поддерживает метод http« POST ».»}

Я нашел аналогичный this SO post, а затем изменил свой код, как показано ниже. Тогда это сработало!

var JSONDispatchingURL = "https://www.driverlive.co.uk/rest/api/PushMessage/GetPushDriverMessagesList?DeviceId=a99f8a977696bfb9&DateFrom=2014-10-27T00:00:00&DateTo=2015-11-11T00:00:00"; 
     $('#DGDispatching').datagrid({ 
      url: JSONDispatchingURL, 
      method: 'get', 
      columns: [[ 
       { field: 'PushDriverMessageDBID', title: 'PushDriverMessageDBID', width: 100 }, 
       { field: 'PushDriverMessageGuid', title: 'PushDriverMessageGuid', width: 100 }, 
       { field: 'AppKey', title: 'AppKey', width: 100 }, 
       { field: 'PushNotificationMessage', title: 'PushNotificationMessage', width: 100 }, 
       { field: 'Sender', title: 'Sender', width: 100 }, 
       { field: 'MessageDated', title: 'MessageDated', width: 100 } 
      ]] 
     }); 
Смежные вопросы