Hallo zusammen,
ich habe ein Problem, ein per AJAX zurückgegebenes JSON-Objekt zu verwenden.
das script http://domain/mmpbasicfunctions.php?user=RfGB2Yy&gruppe=1&toget=flaglink gibt die Ausgabe, die ich per copy&paste zum Testen in die Variable oopsv übertrage
globale Variable MMP.flagopt wird vorher gesetzt.
console.log("vorher:");
console.log(MMP.flagopt);
var oopsv = '{"cell":{"flaglink":"http:\/\/anderedomain\/users\/flag50.png","flagshadowlink":"http:\/\/anderedomain\/users\/flagsh50.png","flagoffsetx":"30","flagoffsety":"-55","flagshadowoffsetx":"0","flagshadowoffsety":"-42"}}';
function setFlagLink (){
JSON.parse(oopsv, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new (window[type])(value);
}
}
MMP.flagopt.push(value);
});
};
function setNOFlagLink() {alert("Keine Antwort!")};
var oops=setFlagLink(oopsv);
console.log("nachher:");
console.log(MMP.flagopt);
~~~
Wenn ich aber die Variable per AJAX anfordere, dann habe ich nachher keine Änderung des Arrays MMP.flagopt
~~~javascript
console.log("vorher:");
console.log(MMP.flagopt);
var oopsv = OpenLayers.loadURL(
"http://domain/mmpbasicfunctions.php?user=RfGB2Yy&gruppe=1&toget=flaglink",
'',
this,
setFlagLink,
setNOFlagLink
);
console.log("oopsv:");
console.log(oopsv);
function setFlagLink (response){
JSON.parse(response, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new (window[type])(value);
}
}
MMP.flagopt.push(value);
});
};
function setNOFlagLink(oopsv) {alert("Keine Antwort!")};
console.log("nachher:");
console.log(MMP.flagopt);
~~~
Ich weiß nicht, welches Problem ich hier habe: CrossSiteScripting, fehlende oder falsche Variablenübergabe?
Es wäre nett, wenn mir jemand weiterhelfen könnte.
Gruß von Paeonia