以下 jQuery 代碼 (postData) 將數據發布到一個簡單的 php 文件,并在完成時調用 sendReply 或 sendFail。我在 postData 函數中有一個 console.log,sendReply 和 sendFail 回調也有 console.log。第一個 console.log 顯示在 FF 開發控制臺中,回調沒有。php 文件非常簡單,因為我是使用 jQuery 發布到 php 的新手,我想在繼續之前測試回調函數。這是jQuery:<form>// form elements here, omitted for brevity // the jQuery is called from a button click event<div class="btn_div"><button class="btn_joinnow" id="btn_submit" style="color:rgb(255,255,255)" onClick="postData(event)">Click to submit data</button></div><script type="text/javascript">function postData(event) { event.preventDefault(); var datastring = $("#echo_test").serialize(); console.log("Okay, I'm starting") return $.ajax({ type: "POST", url: "echo_test.php", data: {post: datastring} });}function sendReply() { console.log("Okay, I'm done"); }function sendFail() { console.log("Okay, I failed"); }postData().done(sendReply, sendFail);</script></form>我可以鏈接回調,但是 event.preventDefault 不起作用:<script type="text/javascript">function postData(event) { event.preventDefault(); var datastring = $("#echo_test").serialize(); console.log("Okay, I'm starting") return $.ajax({ type: "POST", url: "echo_test.php", data: {post: datastring} });.done(function() { console.log("Okay, I'm done"); }).fail(function() { console.log("Okay, I failed");});}這是超簡單的php:<?phpecho "Hello world";?>為什么在完成時不執行任何回調函數?是 jQuery 還是 php 函數?Firefox 開發控制臺顯示了有關 php 的內容:XML Parsing Error: no root element found Location: (file location) Line Number 4, Column 1:我在我的本地 (Windows) 機器上工作,而不是在我的云服務器上。這是整個問題嗎?非常感謝您的任何見解。
jQuery ajax“.done”回調沒有觸發
幕布斯6054654
2021-07-15 15:51:03