通过ajax发送数据时出现错误,它标志着函数中的错误$.ajax()
,但我已经检查了文档并且代码很好。
这个错误标志着我
status.js:29 未捕获的类型错误:$.ajax 不是
HTMLFormElement 中的函数。(status.js:29)
在 HTMLFormElement.dispatch (jquery-3.2.1.js:3)
在 HTMLFormElement.q.handle (jquery-3.2.1.js:3)
$('#formularioAgregar').submit(function(event) {
event.preventDefault();
var frm= $( this ).serialize();
console.log(frm);
$.ajax({
method: "POST",
url: "some.php",
data: frm
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
</head>
<body>
<button type="button" id="nuevo-producto" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">AGREGAR</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Registra un Status</h3>
</div>
<div class="modal-body">
<form id="formularioAgregar" method="post">
<div class="form-group">
<label for="recipient-name" class="form-control-label">STATUS:</label>
<input type="text" required="required" name="status" id="status" maxlength="100"/>
</div>
<div class="modal-footer">
<button type="submit" name="enviar" id="agregar" class="btn btn-primary">Agregar</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="bootstrap/jquery-3.2.1.js"></script>
<script src="bootstrap/cloudflare.js"></script>
<script src="bootstrap/js/bootstrap.min.js" crossorigin="anonymous"></script>
<script src="js/status.js"></script>
</body>
</html>
虽然接受的答案可能会解决手头的问题,但降级 jQuery 并不是最优的,在大多数情况下降级不是最优的,更新解决了许多问题,包括安全问题。
是的,问题出在 jQuery 的版本上,但是 3.x 版本有两种类型:
如果我们查看slim 版本的代码,我们可以找到以下内容(为了更好的阅读而被截断):
我的意思是除了 ajax 和其他 ajax 相关函数和动画之外都是 jQuery,所以 ,和
$.ajax
相关函数不起作用$.get
$.post
解决方案:
很简单,请确保,如果我们需要超薄版本不具备的功能,我们使用的是可以在此页面上找到的完整版本:https ://code.jquery.com/
下面我留下几个例子来展示超薄版和完整版的案例
超薄版本示例
完整版示例
这很有趣,但是在写完这个 bug 10 分钟后,我发现这是一个 jquery 问题。
错误:jquery的苗条版本有这个错误
解决方案:改成非超薄版
我在这!!!错误出现在:
带来 jquery 的 bootstrap x 4 的版本我将其更改为以前的版本并已解决,我将其更改为
jquery-1.9.1.min
.尝试将您的 Ajax 替换为: