2012-04-12 3 views
0

Я пытаюсь следовать учебник здесь:Dojo: DataGrid из JsonRest магазин

http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/

В учебнике пишет:

require(["dojo/store/JsonRest"], function(JsonRest){ 
myStore = new JsonRest({target:"MyData/"}); 

Мой файл MyData.json помещается в ROOT \ MyData , Если я запускаю следующий код

... 
<script> 
var myStore, dataStore, grid; 
require(["dojo/store/JsonRest"], function(JsonRest){ 
    myStore = new JsonRest({target:"MyData/"}); 
}); 

require(["dojox/grid/DataGrid", 
     "dojo/data/ObjectStore", 
     "dojo/domReady!" 
], function(DataGrid, ObjectStore){ 
     grid = new DataGrid({ 
     store: dataStore = ObjectStore({objectStore: myStore}), 
     structure: [ 
      {name:"State Name", field:"name", width: "200px"}, 
      {name:"Abbreviation", field:"abbreviation", width: "200px"} 
     ] 
     }, "target-node-id"); // make sure you have a target HTML element with this id 
     grid.startup(); 
}); 
</script> 
... 

Я получаю сообщение об ошибке 404 на данные, если я пишу «MyData /» и 416 (Запрошенный диапазон не выполнима), если я ставлю «MyData/MyData.json».

Я знаю, что это что-то совершенно глупо, так как я не могу найти кого-нибудь есть такая же проблема, но я не могу увидеть решение:/

С наилучшими пожеланиями и спасибо за вашу помощь!

Andreas

+1

В url должен быть указан json-файл 'MyData/MyData.json'. Вы можете получить json-файл с помощью веб-браузера, напрямую обратившись к URL-адресу? –

+0

URL-адрес jsonData из этой демонстрации - http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/demo/MyData/ , но у него есть изображение внутри, у которого также нет полного URL-адреса. – OammieR

+0

Спасибо за ваши ответы! Крейг: Если я укажу URL-адрес, я получаю ошибку 416. Если я нажму ссылку, запрошенную, например, отладчиком Chromes, я получаю правильный JSON. OammierR: Если я удалю изображение, это будет та же ошибка (416, если я напишу весь путь, 404, если я последую этому руководству). Если я напишу полный путь, он будет таким же (например, localhost: 8080/Data/...) – andreasnauta

ответ

1

Ok поэтому данные, которые вы предоставляете не достаточно для того чтобы обусловить проблему, но 404 не найден.

Итак:

  1. Убедитесь, что вы можете получить доступ к файлу JSon через браузер без проблем.
  2. Если вы это сделаете, используйте этот URL-адрес в {target: "http: // URL"}, это должно сработать.
  3. Помните, что в целевом параметре dojo.store.JsonRest {target: "relative or absolute"}, если используется относительный путь, он будет искать путь исполняемого скрипта.

E.g. Если ваш скрипт сетки находится в http: // localhost/grid/, тогда JsonRest будет выглядеть относительно этого пути. Для цели {target: "MyData.json"} он будет выглядеть в http: //localhost/grid/MyData.json, не найти его, если он где в http: //localhost/MyData.json

Если вы все еще не можете решить эту должность снова!

+0

Благодарим вас за ответ !. Если мне это нравится, 'myStore = new JsonRest ({target:" http: // localhost: 8080/Workspace/MyData/Data.json "});' Я получаю 416 (запрошенный диапазон не устраивает). Я могу просматривать JSON в своем браузере с помощью этого URL-адреса, поэтому есть «соединение» между Dojo и данными. Данные действительны JSON, поэтому я не знаю, что я делаю неправильно. – andreasnauta

+0

Я использовал код, который вы вставляли, и все работает отлично, поэтому доказательство вашей проблемы связано с данными, доказуемо их структурой. Структура данных для JsonRest: [{name: 'Florida', аббревиатура: 'FL'}, {name: 'California', аббревиатура: 'CL'}] – Jmsegrev

Смежные вопросы