Pertanyaan Aman json parsing dengan jquery?


Saya menggunakan jquery dengan json. Halaman klien saya menghasilkan json, yang saya simpan di server saya. Klien kemudian dapat mengambil json kembali nanti, mem-parse, dan menampilkannya.

Karena klien saya menghasilkan json, itu mungkin tidak aman. Saya pikir jquery menggunakan eval () secara internal. Benarkah? Apakah ada cara untuk menggunakan parser json asli dari peramban jika tersedia, jika tidak kembali ke parsing manual jika tidak? Saya baru jquery jadi saya tidak tahu di mana saya memasukkan kode parsing saya sendiri. Saya melakukan sesuatu seperti:

$.ajax({
    url: 'myservlet',
    type: 'GET',
    dataType: 'json',
    timeout: 1000,
    error: function(){
        alert('Error loading JSON');
    },
    success: function(json){
        alert("It worked!: " + json.name + ", " + json.grade);
    }
});

jadi dalam metode success (), objek json sudah diuraikan untuk saya. Apakah ada cara untuk menangkapnya sebagai raw string terlebih dahulu? Kemudian saya dapat memutuskan apakah akan menggunakan parser asli atau parsing manual (berharap ada jquery plugin untuk itu ..).

Artikel yang saya baca semuanya dari tahun yang berbeda, jadi saya tidak tahu apakah jquery telah meninggalkan eval () sudah untuk json,

Terima kasih


6
2018-06-10 16:13


asal


Jawaban:


Versi terbaru telah jQuery.parseJSON. Ini akan menggunakan JSON asli di browser yang memilikinya. Untuk yang lebih tua, ia akan melakukan pemeriksaan regex sanity, kemudian gunakan Function baru () (pada dasarnya eval).

Karena Anda menetapkan 'json' sebagai tipe data, itu akan menggunakan parseJSON di sini. Ini ditangani di internal fungsi httpData 


5
2018-06-10 16:19