ajax POST 不发送对象的一部分

2024-01-04

所以我有这个代码:

var ajaxUrl = 'a/7776/as';
var data = {
    'answer' : {  'user_input'    : []  },
    'form_build_id' : 'form-ffe6f10e9601470ed4cfe38257a959a6'
}
 $.ajax({
    url: ajaxUrl,
    dataType: 'json',
    type: 'POST',
    data: data,
    success: function(json){
    }
  });

然而,当我检查 POST 源时,似乎没有发送“答案”。

这是 Firebug 中的 POST 源代码:

Parametersapplication/x-www-form-urlencoded
form_build_id   form-ffe6f10e9601470ed4cfe38257a959a6
Source
form_build_id=form-ffe6f10e9601470ed4cfe38257a959a6

为什么会出现这种情况?如何才能将对象的“答案”部分发送到 AJAX 帖子中?


默认POST编码是multipart/form-data http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2,它由一系列扁平的name=value pairs.

您的结构不能直接映射到平面系列name=value成对,因为它很复杂。您有一个对象成员,它有一个引用数组的属性。

如果要发送任意复杂的结构,则必须使用不同的编码并确保服务器理解该编码。例如,你can将 JSON 或 XML 发送到服务器,但您必须通过设置来告诉它这就是您正在做的contentType财产在ajax方法(设置您发送的数据的类型to服务器)。然后您的服务器必须了解如何反序列化该 JSON 或 XML。

或者,确保您的结构可以映射到一系列平面name=value pairs.

中途之家是将数据发送为multipart/form-data,但是您发送单个name=value配对并拥有value部分是不同的编码,如下所示:

$.ajax({
    url: ajaxUrl,
    dataType: 'json',
    type: 'POST',
    data: {json: JSON.stringify(data)},
    success: function(json){
    }
});

这会发送一个name=value与名字配对json,其中值是 JSON 编码的字符串。您的服务器端将检索json以正常方式参数,然后使用 JSON 反序列化器重新创建对象图。

这种中间方法有时在框架中很方便,因为这些框架很难使用标准请求编码之外的其他内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax POST 不发送对象的一部分 的相关文章

随机推荐

  • 制作 Laravel 集合的副本

    我正在尝试提供一份集合的副本users到一个雄辩的模型jobs 所以我实际上有 jobs 1 users 1 2 3 2 users 1 2 3 一旦我得到这个 我将对另一个查询中的一些数字进行求和 本质上为每个作业的每个用户提供一个总数
  • 使用 SQL 查询在 DB2 中插入 BLOB 数据

    我遇到了这样的情况 我需要通过从 DB2 Windows 7 上的 DB2 Express C 中的文件系统读取文件来将数据插入到 blob 列中 我在互联网上的某个地方找到了这个INSERT INTO VALUES readfile fi
  • Windows 身份验证混合

    我正在对 Intranet MVC 应用程序使用 Windows 身份验证 我想在身份验证过程中添加额外的逻辑 换句话说 用户除了存在于 AD 中之外 还必须存在于自定义数据库中才能进行身份验证 他们还应该注销 MVC 应用程序 然后使用相
  • RegexBuddy 的免费替代品 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何好的替代方案支持以不同风格编写正则表达式并允许您测试它们 以下是线程中提到的正则表达式工具的
  • 当使用 grunt 构建项目时,Fontawesome 无法工作

    我正在使用很棒的字体库字体 当项目不是用 grunt 构建 丑化时它可以工作 但是当我用 grunt 构建项目时 它不起作用 我在控制台中收到此错误 fonts fontawesome webfont woff v 4 0 3 404 未找
  • Visual Studio 2013团队项目已被删除

    在 vs 2013 中向源代码管理添加新的 Web 解决方案并首次签入后 我收到此错误 TF402484 The PROJECTNAME team project has been deleted Undo any pending chan
  • 将 JAX-WS 2.2.5 客户端与 JDK/JRE 1.5 结合使用

    Java 6 附带 JAX WS 2 0 据我所知 Java 5 并未附带 JAX WS 我能够将 JAX WS 2 2 5 与 Java 1 6 结合使用 通过使用Java认可的覆盖机制 https docs oracle com jav
  • PHP 生成的不完整时区列表

    我尝试生成中指定的完整时区集http php net manual en timezones php http php net manual en timezones php UTC 除外 使用以下代码 zones timezone ide
  • 如何在 Windows 上设置 Eclipse + StatET + Rcpp

    当我知道我可以使用 Rcpp 用 C 创建 R 包时 我感到很兴奋 并渴望了解它的开发环境 并感谢秋季统计博客 http blog fellstat com p 170 我可以使用 Eclipse 和 StatET 它的 R 插件 快速建立
  • 如何将 v-for 的值绑定到 v-if

    我正在使用 BootstrapVue 对于我的问题 我有一个v for在我的模板中有两个buttons 循环我的v for my v if不生成唯一的IDs单击一个按钮后 每个按钮都会被触发 from Open me to Close me
  • Heroku Godaddy 裸域 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Heroku 应用程序 并且添加了 CNAME www 到 herokuapp 以将其从 GoDaddy 重定向到 Heroku
  • 嵌套 VB (VBA) 枚举

    好吧 伙计们 我想实现嵌套枚举的效果 以便轻松对一些常量字符串进行分组 类似于下面的伪代码 Enum gKS Colby Hello Hays World end Enum Enum gMA Dodge Seven Muscatine Po
  • jQuery,未捕获的类型错误

    我的网页上有一些 javascript 代码 正在将一些 div 加载到页面上 我还想向每个 div 添加 onmouseenter 和 onmouseleave 事件处理程序 我正在使用 jquery 添加这些处理程序 但出现错误 对象
  • 在 WP 上使用 MvvmCross 拍摄图像并显示图像时出现问题

    我想用相机拍照并将其显示在我所在的页面上 所以我有一个 ViewModel 我可以在其中拍照并显示它 public class CamViewModel MvxViewModel IMvxServiceConsumer
  • Docker 运行 -p ?/? (这两个端口号是什么以及它们代表什么)

    我使用命令 docker run p 8080 8080 name my local image 但失败 提示无法在本地找到图像 8080 8080 最新 8080 8080 这两个端口到底代表什么 替换这个 p 8080 8080 这样
  • 在Mac上编译ARM .s文件

    我使用的是 Mac Os X 但在编译 s ARM 汇编文件时遇到问题 我的 s 文件是这样的 mov r0 r1 只是看看它是否有效 但当我这样做时arm elf as my s我得到一个a out文件 我愿意chmod x a out
  • 我们可以从 requirejs 中的模块导出多个非 AMD 函数吗?

    如果我有一个名为的非 AMD 模块old js在这个脚本中我有两个函数f1 and f2定义的 我需要使用它们 如何导出两者 require config paths jquery https ajax googleapis com aja
  • Xcode 6.3/iOS 8.3 中的新增功能:使用自分配以方便构造函数会导致构建错误

    此代码在 Xcode 6 2 和 6 3 之间没有更改 但包含的行 self alloc 现在导致错误 Multiple methods named initWithType found with mismatched result par
  • 如何使用UDF添加多列?

    Question 我想将 UDF 的返回值添加到单独列中的现有数据帧中 我如何以足智多谋的方式实现这一目标 这是我到目前为止所拥有的一个例子 from pyspark sql functions import udf from pyspar
  • ajax POST 不发送对象的一部分

    所以我有这个代码 var ajaxUrl a 7776 as var data answer user input form build id form ffe6f10e9601470ed4cfe38257a959a6 ajax url a