您好,登錄后才能下訂單哦!
這篇文章主要介紹ajax的data參數錯誤導致頁面崩潰怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
今天準備把選定表格的其中一行的數據通過ajax傳給后端,但是網站確崩潰了。
代碼如下:
$('.icon-edit').click(function (event) { 這是一個按鈕 o=$('.icon-edit').index($(this))+1; edit.style.display='block'; //console.log('$(this)',$(this).parent().parent()); let message=$(this).parent().parent(); $("#non").val(message.children('td:eq(0)').html()); $("#name").val(message.children('td:eq(1)').html()); $("#sex").val(message.children('td:eq(2)').html()); $("#age").val(message.children('td:eq(3)').html()); $("#xueyuan").val(message.children('td:eq(4)').html()); $("#grade").val(message.children('td:eq(5)').html()); $("#phone").val(message.children('td:eq(6)').html()); $("#room").val(message.children('td:eq(7)').html()); l=message.children('td:eq(0)').html(); }); $('#ok').click(function () { //event.stopImmediatePropagation(); let text=$('table'); id=$('#non').val(); username=$('#name').val(); sex=$('#sex').val(); age=$('#age').val(); institute=$('#xueyuan').val(); grade=$('#grade').val(); phone=$('#phone').val(); hlbhl=$('#room').val() text.find("tr:eq("+o+")").children('td:eq(0)').text(id); text.find("tr:eq("+o+")").children('td:eq(1)').text(username); text.find("tr:eq("+o+")").children('td:eq(2)').text(sex); text.find("tr:eq("+o+")").children('td:eq(3)').text(age); text.find("tr:eq("+o+")").children('td:eq(4)').text(institute); text.find("tr:eq("+o+")").children('td:eq(5)').text(grade); text.find("tr:eq("+o+")").children('td:eq(6)').text(phone); text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl); $.ajax({ type: "POST", url: "doAction2.php",//請求的后臺地址 data: { non:o, id: id, username: username, sex: sex, age: age, institute: institute, grade: grade, phone: phone, hlbhl: hlbhl },//前臺傳給后臺的參數 dataType: "json", ansync: true, ContentType: "application/json; charset=utf-8", success: function (msg) {//msg:返回值 a=2; console.log(a); } }); edit.style.display='none'; });
代碼的大意是我點擊一個按鈕($('.icon-edit'))然后彈出一個表單(edit),表單是數據來源于點擊,然后修改表格
的內容點擊確定按鈕($('#ok'))后把表單數據覆蓋掉之前點擊行的數據,達到修改表格的目的,點擊確定時觸發ajax,
把修改后的數據發送給后端,拿到數據并更新數據庫。
結果頁面不報錯,而是直接崩潰了,查看了許久,才發現是由于ajax的data參數寫錯了,之前寫成這樣:
id=text.find("tr:eq("+o+")").children('td:eq(0)').text(id); username=text.find("tr:eq("+o+")").children('td:eq(1)').text(username); sex=text.find("tr:eq("+o+")").children('td:eq(2)').text(sex); age=text.find("tr:eq("+o+")").children('td:eq(3)').text(age); institute=text.find("tr:eq("+o+")").children('td:eq(4)').text(institute); grade=text.find("tr:eq("+o+")").children('td:eq(5)').text(grade); phone=text.find("tr:eq("+o+")").children('td:eq(6)').text(phone); hlbhl=text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl); $.ajax({ type: "POST", url: "doAction2.php",//請求的后臺地址 data: { non:o, id: id, username: username, sex: sex, age: age, institute: institute, grade: grade, phone: phone, hlbhl: hlbhl },//前臺傳給后臺的參數 dataType: "json", ansync: true, ContentType: "application/json; charset=utf-8", success: function (msg) {//msg:返回值 a=2; console.log(a); } }); edit.style.display='none'; });
從上面可以看出,我傳給data的數據并不是字符串之類的,而是一個n.fn.init [td, prevObject: n.fn.init(1), context: document],
由于自己的粗心和對導致ajax出現錯誤的情況了解比較少,導致看了很久的代碼才發現原因,剛開始就以為不會是參數導致,
因為認為參數錯誤頂多拿到的數據不對,報下錯或者結果不一樣,果真自己還是太年輕。
以上是“ajax的data參數錯誤導致頁面崩潰怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。