[英]How to return a string in Ajax success function
我想在執行ajax代碼后返回一個字符串。 這就是我的代碼在html
樣子:
<script>
(function($){
$('#form').submit(function(event){
var formData = new FormData($("#form")[0]);
event.preventDefault();
$.ajax({
url: "/transform",
type: "POST",
data: formData,
success: function(data){
data
},
});
});
});(jQuery);
</script>
基本上,我想要的是取消顯示方法/transform
一旦完成將返回的字符串,例如“ Done!”,我想在localhost:5000
而不是在控制台中看到此消息。
要執行我的代碼,我訪問localhost:5000
,但是,當顯示/transform
返回的消息時,URL為localhost:5000/transform
這使我認為ajax無法正常工作。
就我所讀的內容而言,使用Ajax可以異步執行我的代碼,因此它無法自動訪問/transform
的返回值。 我已經閱讀了有關回調的內容,但仍然不知道如何使用它,我對此非常陌生(我從昨天開始,這是我第一次同時使用html和js)。
我還檢查了此問題和答案如何從異步調用返回響應? 但是我仍然看不到如何在他們的代碼中插入他們正在談論的回調。
有辦法嗎?
這是我正在使用的html:
<html>
<body>
{% block content %}{% endblock %}
<div class="container">
<div class="col-md-6 center">
<div class="panel panel-default">
<div class="panel-body">
<form accept-charset="UTF-8" role="form" action="/transform" method="post" enctype="multipart/form-data" id="form" >
<div class="panel-heading">
<h3 class="panel-title" style="text-align:center">Select a file</h3>
</div>
<fieldset>
<div class="form-group">
<input class="form-control" type="file" name="data_file" />
</div>
<input class="btn btn-lg btn-success btn-block" type="submit" name="submit" id="submit" value="Submit" placeholder="submit"/>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
首先,就像Robin Zigmond所評論的那樣,您的腳本中有一個語法錯誤,這阻止了它的正常工作。 因此,您擔心腳本是否被執行是正確的。 腳本的最后一行應如下所示
})(jQuery);
(在關閉和打開括號之間刪除了分號)
正如我已經在評論中提到的那樣,您將在開發人員控制台(大多數瀏覽器中為F12)中記下這些內容。 您還將在其中看到console.log輸出,這對於調試javascript非常方便。
其次,為了顯示您的回復,您可以執行以下操作
success: function(data) {
$('#form').prepend( "<p>" + data + "</p>" );
}
根據您的目標,這可能不是您長期解決方案所想要的,但是鑒於您剛剛起步,我認為最好看看它是如何工作的。
假設您可以毫無問題地取回data
,則可以使用jQuery作為中間對象在DOM中顯示data
。 例如,您可以在想要在HTML中顯示消息的任何地方添加<div id="confirmationMessage"></div>
。 然后,您可以使用jQuery將文本放入DOM中,如下所示:
success: function(data) {
$('#confirmationMessage').text(data)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.