Funktion kann bei AJAX-Erfolg nicht aufgerufen werden
P粉020556231
2023-09-02 13:54:42
<p>Ich kann die meisten jQuery-Dateien nicht erfolgreich mit Ajax verwenden. Ich versuche, die Fehlermeldung aus der Antwort in meinem Benachrichtigungs-(Toast-)Div erscheinen zu lassen, aber zusätzlich zu <code>.show()</code> /code> Nichts, was ich versuche, wird funktionieren. </p>
<p>Ich habe <code>console.log()</code> verwendet, um sicherzustellen, dass die Antwort von der URL dekodiert wird und alles wie erwartet funktioniert, aber ich kann die Funktion nicht innerhalb von Ajax aufrufen Erfolgsfunktion< ;/ p>
<p>Dies ist mein aktuelles JS, das beim Klicken auf die Schaltfläche ausgelöst wird. </p>
<pre class="brush:php;toolbar:false;">function errMsg(code, msg) {
const eCode = '<b>E-NS: ' + code + ' </b>'
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',
Methode: 'POST',
Daten: $('#form-1').serializeArray(),
Datentyp: 'JSON',
success:function(response){
if(response.status === true){
$('#form-1').hide();
$('#form-2').show();
} anders {
console.log(response.status);
console.log('Response = ' + Response.code + Response.error);
errMsg(response.code, Response.error);
var eCode = '<b>E-NS: ' + Response.code + ' </b>
var eMsg = '<span class="err>' + eCode + '</span>';
$('.notify').empty().html(eMsg);
}
}
})
})
)}</pre>
<p>Es ist wichtig zu beachten, dass es in PHP oder jQuery keine Fehler oder Warnungen gibt. Ich bin neu bei AJAX und bin mir daher nicht ganz sicher, ob ich das tun könnte, obwohl es logisch genug erscheint, nicht wahr? </p>
当以
JSON
形式发送数据时,jQuery 方法.ajax()
需要传入对象的data
属性中的一个对象唯一的论点。您的jQuery.serialize()
函数为 URL 创建参数字符串。这在这里行不通。您应该使用jQuery.serializeArray()
:您还应该检查服务器将发回的内容。对于我的虚拟 JSON API,没有发回
.status
属性。所以对其进行测试没有意义。我隐藏了我的 toast div (
$('.notify')
),直到 div 中有文本。但是,我忽略了添加显示此内容的函数(如下所示),并且在使用errorCheck() 更新 AJAX
success
函数中的 toast 后没有调用它代码>