2011-01-12 8 views
1

Ich muss programmatisch in meine Tabelle schreiben. Es erlaubt mir, in eine bestimmte Zelle der Tabelle zu schreiben. Mein Code ist:Wie sende ich 'put' Anfrage über javaScript & Ajax?

function update(){ 
       jQuery.ajax({ 
        type: 'PUT', 
        contentType: "application/atom+xml", 
        url: "https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/od6/private/full/R2C1", 
        dataType: "xml", 
        data: "new.xml", 
        success: function() { 
         alert('Put Success'); 
        }, 
        error: function(a,b,c) { 
         console.log("XMLHttpRequest: " + a); 
         console.log("textStatus: " + b); 
         console.log("errorThrown: " + c); 
         alert("XMLHttpRequest : " + a + " textStatus : " + b + " errorThrown : " + c); 
        } 
       }); 
      } 

Ich kann Tabellenkalkulation nur mit XML-Element schreiben. Also, ich habe erstellt (new.xml):

<entry> 
    <id>https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/od6/private/full/R2C1</id> 
    <link rel="edit" type="application/atom+xml" 
    href="https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/worksheetId/private/full/R2C1"/> 
    <gs:cell row="2" col="1" inputValue="300"/> 
</entry> 

Aber mein Code ist es immer noch einen Fehler zu werfen. Ich denke, es hängt mit der XML-Datei zusammen, die ich schreibe. Ich denke, das Erstellen von new.xml ist mein Fehler. Bitte schlagen Sie vor, wie Sie zurückschreiben? Wie erstelle ich ein XML-Element?

Für referece: Update Cells

Ausgang: a: [object Object]

b: undefined

c:

+0

Es könnte helfen, wenn Sie uns sagten, was der Fehler war! Ich vermute jedoch, dass das Problem ist, dass Sie versuchen, eine Zeichenfolge aus einem Dateinamen und nicht XML PUT (dh 'data: 'new.xml'' sollte' data:' etc usw. sein.) – Quentin

+0

Daten: " ..." ist keine richtige Zeichenfolge und gibt einen Fehler. Lassen Sie mich hinzufügen, was der Fehler im vorherigen Fall. –

Antwort

1

Aufgrund same origin policy restriction können Sie nicht AJAX senden fordert Cross-Domain . Hier versuchen Sie, eine AJAX-Anfrage an https://spreadsheets.google.com zu senden. Wenn Ihre Website nicht unter https://google.com gehostet wird, funktioniert das nicht. Um diese Einschränkung zu umgehen, könnten Sie ein Server-Skript auf Ihren Server schreiben, das als Brücke zwischen Ihrer Domain und google.com dient. Dann könnten Sie die AJAX-Anfrage an Ihr Skript senden, das delegieren wird.

+0

Aber es ist in der Google-Dokumentation angegeben! Es ist nicht auf meiner Website. Es ist nur auf Google Doc, dass ich bin Zugriff über mein Google Mail-Programm Was ist ein anderer Weg/Lösung? –

+0

@Sarang, können Sie darauf hinweisen, wo dieser Code in der Dokumentation angegeben ist? –

+0

Ich sage nicht über Code, es wird gesagt, dass so zu tun ... Werfen Sie einen Blick –

Verwandte Themen