2012-04-12 14 views
0

ich das Tutorial ich versuche, hier zu folgen:Dojo: Datagrid von einem JsonRest Shop

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

Das Tutorial schreibt:

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

Meine MyData.json Datei in ROOT \ MyData platziert . Wenn ich den folgenden Code

... 
<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> 
... 

ich einen 404-Fehler auf den Daten ausgeführt werden, wenn ich „MyData /“ und ein 416 (angeforderten Bereich nicht erfüllbar) schreiben, wenn ich „MyData/MyData.json“ setzen.

Ich weiß, es ist etwas total bescheuert ist, da ich nicht, dass jemand das gleiche Problem finden können, aber ich bin nicht in der Lage, die Lösung zu sehen:/

Mit freundlichen Grüßen und vielen Dank für Ihre Hilfe!

Andreas

+1

Die URL sollte die JSON-Datei 'MyData/MyData.json' angeben. Können Sie die JSON-Datei mit einem Webbrowser abrufen, indem Sie direkt auf die URL zugreifen? –

+0

Die URL der JsonData von dieser Demo ist http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/demo/MyData/ , aber es hat ein Bild darin, das auch keine vollständige URL hat. – OammieR

+0

Vielen Dank für Ihre Antworten! Craig: Wenn ich die URL so angeben, bekomme ich den 416 Fehler. Wenn ich auf den Link klicke, der zum Beispiel im Chromes-Debugger angefordert wird, bekomme ich den richtigen JSON. OammierR: Wenn ich das Bild entfernen, ist es der gleiche Fehler (416 wenn ich den gesamten Pfad schreibe, 404 wenn ich dem Tutorial folge). Wenn ich den vollständigen Pfad schreibe, ist es der gleiche (zB localhost: 8080/Data/...) – andreasnauta

Antwort

1

Ok, so dass die Daten, die Sie bieten nicht genug ist, was das Problem zu bestimmen, aber 404 nicht gefunden wird.

So:

  1. Stellen Sie sicher, dass die JSON-Datei über den Browser ohne Probleme zugreifen können.
  2. Wenn Sie dies tun, verwenden Sie diese URL in {Ziel: "http: // URL"}, dies sollte funktionieren.
  3. Denken Sie daran, dass in der Zieloption dojo.store.JsonRest {target: "relative oder absolute"}, wenn der relative Pfad verwendet wird, er im Pfad des ausgeführten Skripts suchen wird.

z. Wenn sich Ihr Grid-Skript in http: // localhost/grid/ befindet, wird der JsonRest relativ zu diesem Pfad aussehen. Für ein Ziel {Ziel: "MyData.json"} wird es in http suchen: //localhost/grid/MyData.json, nicht finden, wenn es in http: //localhost/MyData.json

Wenn Sie diesen Beitrag immer noch nicht lösen können !!

+0

Vielen Dank für Ihre Antwort! Wenn mir das 'myStore = new JsonRest ({target:" http: // localhost: 8080 /Workspace/MyData/Data.json "}) gefällt:' Ich bekomme eine 416, (Requested Range Not Satisfiable). Ich kann den JSON in meinem Browser mit dieser URL anzeigen, so dass es eine "Verbindung" zwischen Dojo und den Daten gibt. Die Daten sind gültig JSON, also weiß ich nicht, was ich falsch mache. – andreasnauta

+0

Ich habe den Code verwendet, den Sie eingefügt haben, und alles funktioniert perfekt, so dass Ihr Problem mit den Daten in Zusammenhang steht. Datenstruktur für den JsonRest: [{Name: 'Florida', Abkürzung: 'FL'}, {Name: 'Kalifornien', Abkürzung: 'CL'}] – Jmsegrev