Spreadsheet Google menampilkan nilai yang tidak ditentukan saat mengirimkan melalui permintaan AJAX

Saya mencoba mengirim data yang saya kumpulkan dari aplikasi web saya ke spreadsheet Google. Saya menggunakan skrip dari Martin Hawksey: https://Gist.github.com/mhawksey/1276293

Saya telah mengaturnya dan melakukan semuanya seperti yang ditunjukkan dalam manual. Dan saya mendapatkan datanya kembali, tetapi itu muncul sebagai nilai yang tidak ditentukan: gambar spreadsheet

Ini adalah kode yang saya gunakan untuk mengirim string JSON ke spreadsheet saya:

    function sendData(){
    var url = 'https://script.google.com/macros/s/AKfycby3SUJvfEjdHWVoEON0L5hN4uXod8M4Jv1LAIWH3Ny16MIUz9o/exec';
    var data = JSON.stringify(member);

    $.ajax({
        url: url,
        type: 'GET',
        dataType: 'json',
        data: data,
        success: function (response) {
            console.log("succes! I sent this: " + data);
            console.log("got this back: " + JSON.stringify(response));
        },
    });
}

Ini memberi saya pesan sukses, bahkan memberi tahu saya di baris mana pesan itu ditempatkan. Ini adalah string JSON yang saya kirim:

{"Voornaam":"Name","Achternaam":"Name","Mail":"[email protected]","Verjaardag":"0/0/0000","Foto":"https://graph.facebook.com/xxxxx/picture?width=1020","School":"School X","Richting":"Course X"}

Saya bahkan memeriksa JSON ini dengan parser JSON online dan tidak menghasilkan kesalahan apa pun.

Sebagai permulaan, saya tidak sepenuhnya yakin bagaimana cara memeriksa string mana yang saya terima di spreadsheet saya. Jika masih benar saat tiba. Saya mencoba mencatatnya, tetapi sepertinya tidak mendapat respons apa pun dari google logger.

Jika ada yang bisa menunjukkan kesalahan saya, Anda akan sangat dihargai!


person Viperdream    schedule 02.08.2018    source sumber
comment
Anda merangkai JSON sebelum mengirimkannya ke skrip web Anda. Namun skrip web mengharapkan objek JSON, sehingga tidak dapat mengambil data. Saya akan menghapus fungsi stringify dan mengirim JSON apa adanya.   -  person Jack Brown    schedule 03.08.2018
comment
Itu berhasil, berfungsi dengan sempurna sekarang. Terima kasih!   -  person Viperdream    schedule 03.08.2018
comment
@Viperdream stackoverflow.com/help/someone-answers   -  person tehhowch    schedule 03.08.2018


Jawaban (1)


Skrip Web mengharapkan objek JSON. Namun, panggilan Ajax dilakukan dengan string menggunakan fungsi stringify

var data = JSON.stringify(member);

Memodifikasi skrip untuk membuat panggilan GET dengan objek JSON telah menyelesaikan masalah, seperti itu

var data = member;
person Jack Brown    schedule 02.08.2018