2017-01-16 1 views
0

J'essaie de mettre à jour certaines données dans un service de repos via un appel de repos. Pour une raison quelconque mon code ne fonctionne pas, le code que j'utilise est:AJAX avec l'appel json à un service ArcGIS ne fonctionne pas

var jsonTemp = [{ 
    attributes : { 
     'objectId' : str.objectid, 
     'relcp86d_' : str.relcp86d_, 
     'relcp86d_i' : str.relcp86d_i, 
     'symbol' : str.symbol, 
     'polygonid' : str.polygonid, 
     'scale' : str.scale, 
     'angle' : str.angle, 
     'omschrijvi' : str.omschrijvi 
    }, 
    geometry : { 
     'x' : str.geometry.flatCoordinates[0], 
     'y' : str.geometry.flatCoordinates[1] 
    } 
    }]; 

    jsonTemp = JSON.parse(JSON.stringify(jsonTemp)); 
    console.log('jsonTemp: ', jsonTemp); 


    $.ajax({ 
    url: url, 
    dataType: 'json', 
    type: 'POST', 
    data: jsonTemp, 
    success: function(data) { 
     console.log('success ', data); 
    }, 
    error: function(xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(thrownError); 
    } 
    }); 

Ensuite, si je vérifie la réponse qu'il ressemble à une sorte d'objet est dans le code d'erreur, donc je ne sais pas quoi faire. L'erreur ressemble à ceci:

Error Object { readyState: 4, getResponseHeader: [9]</</<.ajax/jqXHR.getResponseHeader(), getAllResponseHeaders: [9]</</<.ajax/jqXHR.getAllResponseHeaders(), setRequestHeader: [9]</</<.ajax/jqXHR.setRequestHeader(), overrideMimeType: [9]</</<.ajax/jqXHR.overrideMimeType(), statusCode: [9]</</<.ajax/jqXHR.statusCode(), abort: [9]</</<.ajax/jqXHR.abort(), state: [9]</</<.Deferred/promise.state(), always: [9]</</<.Deferred/promise.always(), catch: [9]</</<.Deferred/promise.catch(), 9 meer… } 

--edit

J'ai essayé de le faire via OpenLayers3 premier mais cela ne fonctionne pas si c'est pourquoi je l'essayer par cette voie maintenant. Ce est le code d'erreur i get utilise thrownError

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

+0

Wha't l'URL de l'API que vous utilisez? –

+0

C'est un serveur local que j'essaye de mettre à jour les caractéristiques, que je pourrais montrer mais vous ne pourrez pas vous connecter: localhosturl/arcgis/repos/services/test/Gelderland/FeatureServer/0/updateFeatures pas sûr où une version est –

+0

Que fait votre: "console.log ('jsonTemp:', jsonTemp);" sortie de commande? –

Répondre

2

Essayez cette

$.ajax({ 
    url: url, 
    dataType: 'json', 
    type: 'POST', 
    data: jsonTemp, 
    success: function(data) { 
     console.log('success ', data); 
    }, 
    error:function(jqXHR, textStatus, msg){ 
     console.log('Error ', textStatus); 
    } 
    }); 
+0

En fait, je l'ai juste essayé de la même manière et je reçois ceci comme résultat: SyntaxError: JSON.parse: caractère inattendu à la ligne 1 colonne 1 des données JSON Donc, il semble que ça ne ressemble pas json du tout –