Apakah punca ralat ajax?

青灯夜游
青灯夜游asal
2022-01-19 14:47:1415621semak imbas

Punca ralat ajax: 1. Jenis dataType yang salah 2. Format json yang salah 3. Terdapat masalah dengan tetapan segerak dan tak segerak 4. Nilai parameter data tidak ditetapkan; 5. Terdapat masalah dengan format pengekodan parameter yang diluluskan ;6 Terdapat aksara Cina dalam laluan URL.

Apakah punca ralat ajax?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi jquery 1.10.2, komputer Dell G3.

Kod ajax jquery standard:

$.ajax({
         type: 'POST',
         url: 'getSecondClassification',
         data: {"sort2": sort2,"sort3":sort3)},
         dataType: 'json',
  //contentType:"utf-8",发送请求的编码方式
  //contentType都是默认的值:application/x-www-form-urlencoded
 
  contentType: 'application/json',
  data: JSON.stringify({a: [{b:1, a:1}]})
 
  success: function (sort) {
    $("#noneSelect").remove();
    var optionstring = "";
    for (var i in sort) {
                     optionstring += "<option value=\"" + sort[i].classId + "\" >" + sort[i].className + "</option>";
               }
               $("#secondtype").html(optionstring);
    $("#build").removeAttr("disabled");
  },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
    //              $("#p_test").innerHTML = "there is something wrong!";
    //                alert(XMLHttpRequest.status);
    //                alert(XMLHttpRequest.readyState);
    //                alert(textStatus);
         }
   });

Sebarang ralat akan melompat ke fungsi ralat

Contoh beberapa ralat menyebabkan:

1. DataType error

Ralat taip: Jenis data yang dikembalikan oleh latar belakang tidak konsisten dengan yang ditulis di hadapan desk dan akan melompat ke ralat

Ralat format: jquery1.4 mempunyai keperluan format yang sangat ketat untuk json, dan ralat format json juga akan melompat kepada ralat.{"test":1} Perhatikan format

Kadangkala, apabila tidak Jika anda perlu memulangkan nilai, ikut format templat dan tetapkan parameter dataType: "json" Pada masa ini, apabila nilai ajax betul, akan berlaku situasi khas di mana ralat dilaporkan dalam status kejayaan 200 pulangan.

2. Isu segerak dan tak segerak dengan permintaan tak segerak

Async lalai kepada benar (permintaan tak segerak selepas itu). ia dilaksanakan, Untuk Ajax, anda perlu menetapkan async=false

Contohnya, anda menggunakan permintaan siaran untuk menghantar nilai ke latar belakang halaman lain, tetapi ajax anda telah dilaksanakan sebaik sahaja halaman dimuatkan, dan penerimaan nilai selesai di latar belakang , data tidak boleh diminta pada masa ini, jadi anda boleh mempertimbangkan untuk menukar permintaan ajax kepada cubaan segerak.

3. Data mesti ditulis

Jika data kosong, anda mesti menghantar "{}" jika tidak, data yang dikembalikan ialah dalam format xml. Dan menggesa parsererror.data:"{}"

Pengecualian parsererror juga berkaitan dengan jenis Pengepala. dan pengekodan pengekodan('Content-type: text/html; charset=utf8');

4. Parameter yang diluluskan

mestilah Format pengekodan yang disokong Ajax

5. Masalah laluan URL

Laluan tidak boleh mempunyai aksara Cina

Gunakan ralat untuk nyahpepijat mesej ralat:

Anda boleh memaklumkannya untuk melihat apa yang telah berlaku

Parameter khusus:

XMLHttpRequest:XMLHttpRequest.readyState: 状态码的意思
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

XMLHttpRequest: XMLHttpRequest.status:

textStatus: Sebab ralat

errorThrown: (pilihan) objek ralat yang ditangkap

[Cadangan tutorial berkaitan: Tutorial video AJAX]

Atas ialah kandungan terperinci Apakah punca ralat ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah ungkapan javascript?Artikel seterusnya:Apakah ungkapan javascript?