AJAX 성공 시 함수를 호출할 수 없습니다.
P粉020556231
2023-09-02 13:54:42
<p>Ajax에서는 대부분의 jQuery를 성공적으로 사용할 수 없습니다. 내 알림(토스트) 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: ' + 코드 + ' </b> + msg;
const eMsg = '<span class="err" style="color: red;">' + eCode + '</span>';
$('.notify').empty().html(eMsg);
}
$(문서).ready(함수() {
$('#next-1').click(함수(e) {
e.preventDefault();
$.아약스({
URL:'../data.php',
메소드: 'POST',
데이터: $('#form-1').serializeArray(),
데이터 유형: 'JSON',
성공:함수(응답){
if(response.status === true){
$('#form-1').hide();
$('#form-2').show();
} 또 다른 {
console.log(response.status);
console.log('응답 = ' + response.code + response.error);
errMsg(response.code, response.error);
var eCode = '<b>E-NS: ' + response.code + ' </b> + 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
속성이 다시 전송되지 않습니다. 따라서 테스트할 필요가 없습니다.토스트 div를 숨겼습니다(
으아악$('.notify')
),直到 div 中有文本。但是,我忽略了添加显示此内容的函数(如下所示),并且在使用errorCheck() 更新 AJAX
success
함수 코드에서 토스트 후에 호출하지 않음>