当前位置: 首页 > 面试题库 >

在未实现接口FormData的对象上调用了“ append”

贡光明
2023-03-14
问题内容

我正在尝试使用jquery和ajax上传图像。但是奇怪的事情在这里发生了。在控制台中记录其显示

TypeError:在未实现接口FormData的html" target="_blank">对象上调用了“ append”。

请告诉我我在这里做错了什么?

JS脚本

var prosrc=$("#pro_pix img").last().attr("src");
$("#logoform").on('change',function(event){
var postData = new FormData(this);
$("#pro_pix img").last().hide();
$("#pro_pix img").first().show();
event.preventDefault();
$.ajax(
    {
        url : "/function/pro_pic_upload.php",
        type: "POST",
        data : postData,
        success:function(data, textStatus, jqXHR)
        {
        $("#pro_pix img").last().show();
        $("#pro_pix img").first().hide();
        $("#pro_pix h6").text(data);
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            //if fails     
        }
    });
});

我的HTML标记

 <div class="row">
    <!-- left column -->
    <div id="pro_pix" class="col-md-4 col-sm-6 col-xs-12">
      <div class="text-center">
        <img src="template/image/725.GIF" class="avatar img-circle img-thumbnail" style="display:none" alt="avatar">
        <img src="<?php echo $rowuser['profile_logo']; ?>" class="avatar img-circle img-thumbnail" alt="avatar">
        <h6>Upload a different photo...</h6>
        <form role="form" id="logoform" enctype="multipart/form-data">
        <input id="logo" name="logo" type="file" class="text-center center-block well well-sm">
        </form>
      </div>
    </div>

问题答案:

为了将formdata与jquery一起使用,您必须设置正确的选项

$.ajax({
    url : "/function/pro_pic_upload.php",
    type: "POST",
    data : postData,
    processData: false,
    contentType: false,
    success:function(data, textStatus, jqXHR){
        $("#pro_pix img").last().show();
        $("#pro_pix img").first().hide();
        $("#pro_pix h6").text(data);
    },
    error: function(jqXHR, textStatus, errorThrown){
        //if fails     
    }
});

.ajax参考

processData(默认值:true)

类型:布尔

默认情况下,作为对象传递给data选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,以适合默认的内容类型“ application /
x-www-form-urlencoded” 。如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。



 类似资料:
  • 问题内容: 我有这个代码 当我单击一个链接时,我会进行ajax调用 但是,当我单击链接时,当我从ajax调用中删除此代码时,会出现此错误“ ” 我的代码工作正常。为什么会发生这种情况以及如何解决呢?如何发送数据? 问题答案: 如果是输入字段,则可能需要获取其值。 现在,您正在引用包含HTMLDom元素的jQuery对象,但是我认为您想要的是搜索输入元素中的字符串。

  • 我对类上的接口实现的理解是,接口类型引用实现接口的类的对象。 但是当我研究下面的代码片段在上面的代码中使用时… GetConnection(host,username,password)返回对对象的引用(类型为Connection),但DriverManager类中没有实现接口。谁能澄清我的这个疑问..?还是我漏掉了什么? 下面的代码段不能得到相同的东西 createStatement()应该返回

  • 问题内容: 如何检查某个类是否实现接口?当有: 如何检查是否实现接口? 该方法是否被正确覆盖,因此可以返回新创建的方法? 问题答案: 对于一个实例 然后做 对于Class实例

  • 我正在使用GraphQL工具来构建一个GraphQL模式,本质上我有这个结构 我有以下解析器 我让模式可执行 可选参数inheritResolversFromInterfaces:true应该允许我根据apollo graphql工具文档(链接)将公民身份解析程序从继承到。这样,当查询作者时,“示例公民身份”字符串将出现。 然而它没有,查询返回

  • 问题内容: 我在Java中有以下情形。假设我有一个接口,以及两个实现此接口的类。如下: 公共接口myInterface { } 公共类A实现myInterface { } 公共类B实现myInterface { } 如果定义如下,如何调用上面的printOtherStuff方法: 上面的调用代码似乎无效。有任何想法吗? 问题答案: 的参考类型为。这意味着您只能访问接口中定义的方法。您可以将其强制类

  • 问题内容: 这可能以前曾被问过,但是快速搜索只提出了询问C#的相同问题。看这里。 我基本上想做的是检查给定对象是否实现了给定接口。 我有点想出了一个解决方案,但这不足以在if或case语句中频繁使用它,我想知道Java是否没有内置解决方案。 编辑:好的,谢谢您的回答。特别是对于Damien Pollet和Noldorin,您让我重新考虑了设计,因此我不再测试接口。 问题答案: 该运营商确实在工作安