無法在 AJAX 成功中呼叫函數
P粉020556231
2023-09-02 13:54:42
<p>我無法在 Ajax 中成功使用大多數 jQuery。我試圖讓回應中的錯誤訊息出現在我的通知(toast)div中,但是除了<code>.show()</code> 和<code>.hide()</code> 之外我嘗試的任何內容都不會工作。 </p>
<p>我已經使用<code>console.log()</code>來確保它確實解碼了來自url的響應,並且一切都按預期進行,但是我無法調用Ajax成功函數內的函數< ;/ p>
<p>這是我目前的 JS,點擊按鈕即可觸發。 </p>
<pre class="brush:php;toolbar:false;">function errMsg(code, msg) {
const eCode = '<b>E-NS: ' code ' </b> </br>' msg;
const eMsg = '<span class="err" style="color: red;">' eCode '</span>';
$('.notify').empty().html(eMsg);
}
$(document).ready(function() {
$('#next-1').click(function(e) {
e.preventDefault();
$.ajax({
url:'../data.php',
method: 'POST',
data: $('#form-1').serializeArray(),
dataType: 'JSON',
success:function(response){
if(response.status === true){
$('#form-1').hide();
$('#form-2').show();
} else {
console.log(response.status);
console.log('Response = ' response.code response.error);
errMsg(response.code, response.error);
var eCode = '<b>E-NS: ' response.code ' </b> </br>' response.error;
var eMsg = '<span class="err>' eCode '</span>';
$('.notify').empty().html(eMsg);
}
}
})
})
)}</pre>
<p>要注意的是,php 或 jQuery 中沒有出現錯誤或警告。我是 AJAX 新手,所以我不完全確定這是否是我能夠做的事情,儘管它看起來足夠合乎邏輯,不是嗎? </p>
當以
JSON
形式傳送資料時,jQuery 方法.ajax()
需要傳入物件的data
屬性中的一個物件唯一的論點。您的jQuery.serialize()
函數為 URL 建立參數字串。這裡行不通。您應該使用jQuery.serializeArray()
:您也應該檢查伺服器將發回的內容。對於我的虛擬 JSON API,沒有發回
.status
屬性。所以對其進行測試沒有意義。我隱藏了我的 toast div (
$('.notify')
),直到 div 中有文字。但是,我忽略了添加顯示此內容的函數(如下所示),並且在使用errorCheck() 更新 AJAX 更新 AJAX
success
函數中的 toast 後沒有調用它代碼>