| 

.NET C# Java Javascript Exception

2
Hallo zusammen...ich habe ein mir gerade unerklärliches Problem.

Und zwar will ich Daten aus einem REST-Webservice in das JqGrid laden. Das response Format ist XML.
Es funktioniert, wenn ich eine lokale XML Datei einlese, aber sobald ich die URL ändere in die Adresse des Webservices dann werden keine Daten geladen und es erscheint nur das leere Grid.

Hier mein Quelltext mit der funktionierenden Variante der lokalen XML datei:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My First Grid</title>

<link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />

<script src="js/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="js/src/i18n/grid.locale-de.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/src/jqDnR.js" type="text/javascript"></script>
<script src="js/src/jqModal.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#list").jqGrid({
url:'test.xml',
datatype: 'xml',
colNames:['ID','String','Int','Char','Bool'],
colModel :[{name:'DummyId', index:'DummyId' , width:100, sortable:true},
{name:'DummyString', index:'DummyString' , width:100, sortable:true},
{name:'DummyInt', index:'DummyInt' , width:100, sortable:true},
{name:'DummyChar', index:'DummyChar' , width:100, sortable:true},
{name:'DummyBool', index:'DummyBool' , width:100, sortable:true}],
pager: '#pager',
rowNum:4,
rowList:[10,20,30],
sortname: 'Dummy Id',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'My first grid'
}).navGrid('#pager');
});
</script>

</head>
<body>
<table id="list"><tr><td/></tr></table>
<div id="pager"></div>
<div id="t"> </div>
</body>
</html>



Ich muss dazu sagen, ich bin noch Neuling auf dem Gebiet jQuery. Und hoffe daher auf eure Hilfe bei der Problemlösung!

[edit=code tags eingefügt]
News:
25.08.2011
Gast
21 1
DaSpors 4,1k 1 8
1
Hi, kannst du vll die url deines Webservices posten? Ich würde mir gerne mal anschauen was da kommt. Grüße
Nicolai Schönberg 25.08.2011
1 Antwort
0
Das liegt daran, dass per JS keine Daten von einer anderen Domain geladen werden dürfen. Ist eine Sicherheitsbeschränkung.
Du kannst allerdings ein Proxy-Script schreiben, das serverseitig ausgeführt wird und quasi nur die Anfrage weiterleitet.
In PHP sähe das (wirklich GAAANZ abgespeckt) so aus:
<?
$url = "http://base.of/the/service/?";
$url .= $_SERVER['QUERY_STRING'];
echo file_get_contents($url);
?>

Anstatt aus JS dann die URL "http://base.of/the/service/?arg1=1&arg2=2" zu verwenden nimmst Du dann einfach "http://url.of/my/proxyscript/?arg1=1&arg2=2".
26.08.2011
DaSpors 4,1k 1 8
ok. ich habe jetzt einen Prox eingebaut und der funktioniert auch, stellt also eine Verbindung zu dem anderen Server her.

Allerdings werden nachwievor keine Daten in dem JqGrid angezeigt.
– Gast 26.08.2011
Hast du auch korrekte content header mitgeschickt? der 'proxy-code' von mir ist ja...sagen wir unvollständig ;)
DaSpors 29.08.2011

Stelle deine Javascript-Frage jetzt!