当前位置: 首页 > 知识库问答 >
问题:

阿贾克斯表单数据返回空值

文彭祖
2023-03-14

我创建了一个表单。我以 JSON 格式发送此表单中的数据。

如果我只提交表单数据(我还将控制器更改为[来自正文]图像请求)并将内容类型和进程数据设置为假,则表单数据不为空。

我认为“document”返回null,因为我将数据作为JSON发送。我如何解决这个问题?我陷入了这个问题。

阿贾克斯请求

   let myProfile = {
        id: 0,
        title: "",
        text: "",
        document: File,
    };
    
        myProfile.title = "Lorem ipsum"; 
        myProfile.text = "Lorem ipsum"; 

        var formData = new FormData();
        formData.append('file', $('#file').get(0).files[0]);
        formData.append('fileName', $("#fileName").val());

        var myFile = formData.get('file');
        myProfile.document = myFile;

    $.ajax({
       url: `/admin/myprofile`,
       type: "POST",
       data: JSON.stringify(myProfile),
       contentType: "application/json",
       dataType: 'json',
       success: ....

断续器

    <div class="form-group">
        <input type="file" name="document" asp-for="document" id="file" />
    </div>

控制器

    [HttpPost("myprofile")]
    public IActionResult MyProfile([FromBody] MyProfileDTO request)
    {
        return ...
    }

    public class Image
    {
      public IFormFile file { get; set; }
      public string fileName { get; set; }
    }

    public class MyProfileDTO 
    {
        public string Title { get; set; }
        public string Text { get; set; }
        public Image Document{ get; set; }
    }

共有1个答案

轩辕煜
2023-03-14

阿贾克斯请求

   let myProfile = {
        id: 0,
        title: "",
        text: "",
        document: File,
    };
    
        myProfile.title = "Lorem ipsum"; 
        myProfile.text = "Lorem ipsum"; 

        var formData = new FormData();
        formData.append('file', $('#file').get(0).files[0]);
        formData.append('title', myProfile.title);
        formData.append('text', myProfile.text);


    $.ajax({
       url: `/admin/myprofile`,
       type: "POST",
       data: formData ,
       contentType: "application/json",
       success: ....

控制

    [HttpPost("myprofile")]
    public IActionResult MyProfile([FromBody] MyProfileDTO request, IFormFile file)
    {
        return ...
    }

    

    public class MyProfileDTO 
    {
        public string Title { get; set; }
        public string Text { get; set; }
    }
 类似资料:
  • 据我所知: 在quarkus文档中,quarkus正在使用工作线程来执行jaxrsendpoint 这个垂直。在x文档中,工作线程是为调用阻塞代码而设计的 可能存在误解:以下术语的确切含义是什么? 服务器非阻塞代码。 服务器异步响应处理。 服务器响应代码。 我的问题是:为什么我不能使用jax-rsendpoint创建非阻塞代码并利用标准事件循环线程? 编辑: 有几个问题困扰着我: 默认情况下,re

  • 我正在尝试从servlet(viewcurrentstock.java)检索一个属性到jsp(viewstock.jsp)。这里有一个例外提示:“org.apache.jasper.JasperException:java.lang.NullPointerException” 查看当前股票。JAVA viewstock.jsp 服务器日志:

  • 我的jsp有一个代码: 这是我的servlet: 当我点击登录按钮时,我有一个错误。 提前谢谢

  • 我在生产服务器上部署了我的项目,并得到以下错误。 这是一个实时项目,所以,在出现错误后,我用运行良好的前一个版本替换了它,但现在它也抛出了相同的错误。请告诉我有什么问题? 错误: InExpage。jsp:

  • 我为在线DVD商店创建了一个EJB应用程序。我使用Netbean 7.2.1和Glassfish 3.1.2当我运行index.jsp时,它的界面启动成功,如果我单击表单提交按钮,我会收到此错误: 在Netbean中,我得到了这个错误: 我创建了一个JavaEE企业应用程序。我有项目ejb和项目战争。因为我无法直接从ejb创建SessionBean,所以我创建了一个新的项目/Java库类,并在那里

  • 我已经在这个领域做了一些研究,但没有找到任何解决方案。我有一个网站,其中对脸书进行异步ajax调用(使用JSONP)。我正在使用VCR在Ruby端记录我的所有HTTP请求,所以我认为将此功能也用于AJAX调用会很酷。 所以我玩了一会儿,想出了一个代理尝试。我正在使用PhantomJS作为无头浏览器和恶作剧者,用于水豚内部的集成。波尔特盖斯特现在配置为使用这样的代理: 出于测试目的,我编写了一个基于