尝试传递表单数据时的jquery ajax匿名函数
我试图通过jquery ajax传递一个输入文件字段,我在chrome inspector控制台中得到一个匿名函数,它说这是因为我的脚本中有一行代码: $.ajax{ 这是我在完成任务后运行的代码尝试传递表单数据时的jquery ajax匿名函数,jquery,ajax,django,file-upload,Jquery,Ajax,Django,File Upload,我试图通过jquery ajax传递一个输入文件字段,我在chrome inspector控制台中得到一个匿名函数,它说这是因为我的脚本中有一行代码: $.ajax{ 这是我在完成任务后运行的代码 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> $("#sendCoverImageForm").click(function(e){
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
$("#sendCoverImageForm").click(function(e){
e.preventDefault()
var mForm = $("#sendFormOne").serialize()
$.ajax({
type: "POST",
url: "{% url 'ajax_coverimage' %}",
data: mForm,
success: function(data){
console.log(data)
$("#CoverImageModal").modal("hide");
},
error: function(data){
var obj = data.responseJSON
$("#modalMessage").html("<p style='color:red;'>" + obj + "</p>")
},
});
});
如果我在
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
在控制台里我得到
未捕获引用错误:$未定义-与脚本上的顶行相关。然后我运行脚本,它工作并将文件放入我的模型中,但页面在DOM而不是控制台中呈现成功
我是jquery的noob,所以我很乐意接受任何帮助!美元相当于jquery对象jquery,在这两种情况下,它都将处理jquery函数作用域中括号之间的语句。
这解释了为什么脚本在包含jQuery src之前会引发未捕获的引用错误,因为$sign尚未定义
正如穆萨所说,你应该使用FormData对象,但你应该记住,在IE中,它只受IE10+的支持,但是你可以使用插件来支持旧浏览器,因为你将要编写大量代码来支持它们,这对刚开始使用JavaScript的人来说是不愉快的,但你应该在以后学习如何去做例如ee
这里有一个使用FormData的方法,不要介意PHP。
希望这能有所帮助!控制台上显示'POST 400 BAD REQUESTjquery.min.js:4 n.ajaxTransport.k.cors.a.crossDomain.sendjquery.min.js:4 n.extend.ajaxindex:579 anonymous functionjquery.min.js:3 n.event.dispatchjquery.min.js:3 n.event.add.r.handle','您无法上载包含数据的文件。序列化您必须使用FormData对象。数据重新发送应该是JSON格式的。你从哪里得到的?我想这有点误导,我会改变它。