我在成功时调用外部函数时遇到问题。理想的解决方案是让我也将一些参数传递给函数!
即。 success: writeToConsole("successful");
使用Javascript:
$(document).ready(function () {
$(".portalControls").find(".syncButton").click(triggerSync);
});
function triggerSync(e) {
e.preventDefault();
$.ajax({
type: "GET",
url: "sync",
dataType: "text",
success: writeToConsole,
error: writeToConsole
}
});
}
function writeToConsole(consoleText) {
$.find("portalConsole").text(consoleText);
}
HTML:
<!-- Scripts -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>
我得到的错误:"Uncaught TypeError: $.ajax is not a function"
。
我从未在我的服务器上收到请求。
编辑:问题与在另一页上使用jQuery slim脚本有关。删除它修复了错误。
答案 0 :(得分:3)
您正在使用瘦身版的jQuery。它不支持ajax调用。使用以下
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<强>更新强> 请查看以下内容 JSfiddle
答案 1 :(得分:-1)
正如@Santosh所说,请确保在脑海中添加以下代码:
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
此外,我发现您的代码中存在一些错误,我试图找出您想要实现的内容并从中创建代码,您应该看看这是否是您想要的
$(document).ready(function() {
$(".portalControls").find(".syncButton").click(triggerSync);
});
function triggerSync(e) {
e.preventDefault();
$.ajax({
type: "GET",
url: "sync",
dataType: "text",
success: writeToConsole("fine"),
error: writeToConsole("error")
});
}
function writeToConsole(consoleText) {
$(".portalConsole").text(consoleText);
}
&#13;
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div class="portalControls">
<button class="syncButton">
click
</button>
</div>
<div class="portalConsole">
</div>
&#13;
对于我首先发现的问题,此处还有一个}
success: writeToConsole,
error: writeToConsole
}
^
});
其次,我不知道您使用$.find("portalConsole").text(consoleText);
的原因,如果您想更改文字,我会$(".portalConsole").text("text here...")
使用.
也注意到没有#
for obj in ques:
print obj.slug_field
在portalConsol之前1}}或ques = Upload.objects.filter(unique_id=tdetail).order_by('?')
。
答案 2 :(得分:-2)
只需添加上述CDN脚本标记
即可 <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>