我正在尝试通过jquery ajax传递一个输入文件字段,我在我的chrome检查器控制台中得到一个匿名函数,它说这是因为我的脚本中的行: $就({
继承了我的
之后运行的代码<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>
在控制台中我得到了
未捕获的ReferenceError:$未定义 - 与脚本的顶行相关。然后我运行脚本并运行并将文件放入我的模型中,然后页面在DOM中呈现“成功<filename>
”而不是控制台。
我是jquery的菜鸟,所以任何帮助都会很乐意收到!
答案 0 :(得分:0)
$()
等同于jQuery对象jQuery()
,在这两种情况下都会处理jQuery函数范围内括号之间的语句。
这解释了为什么在包含jQuery src之前脚本会引发Uncaught ReferenceError,因为$
符号尚未定义。
正如musa所说,你应该使用FormData对象,但你应该记住,在IE浏览器中它只支持IE10 +,你可以使用插件支持旧版浏览器作为你的代码量# 39;写作支持它们对于刚刚开始使用JavaScript世界的人来说是不愉快的,但是你应该学会如何做到这一点,例如,请参阅filedropjs。
这里有tutorial使用FormData(不要介意PHP)。
希望这有帮助!