【问题标题】:Formatting JSON sending by AJAX in browser在浏览器中格式化由 AJAX 发送的 JSON
【发布时间】:2018-04-07 02:00:35
【问题描述】:

我在 Google Chrome 浏览器中格式化 JSON 对象时遇到问题。我写了示例代码:

变量发送数据 = { '标志':1, '种类': { 'imie_nazwisko':'asc' }, '在哪里': { 'global_percent': 0, 'analityk': ["Dariusz Doda", "Arkadiusz Garbarczyk"] } };

下面是浏览器检查器的屏幕:

Data in browser

为了确保使用 ajax 方法是否一切正确,我附上了它:

$.ajax({ url: '/admin/setData', 类型:“发布”, 数据类型:'json', 数据:发送数据, 成功:函数(数据){ 完成(数据。消息); }, 错误:函数(数据){ 控制台.log(数据); } });

在我看来,要发送到服务器的代码必须有点不同。一些建议有什么问题?

【问题讨论】:

  • 您遇到了什么问题?您只是做了一个对象并将其发送到某个地方。
  • 我在这里没有发现任何问题。 Chrome 显示的数据与您的 sendData 对象的格式完全相同,只是使用不同的约定显示。
  • 我会使用纯 JavaScript 对象,然后在发送时使用 JSON.stringify 进行转换。
  • data: JSON.stringify(sendData), 现在懒得找骗子了
  • @BlakeConnally 我从服务器收到了错误的数据。我认为这是格式化对象的问题。但它确实是不同的约定,在这种情况下,都必须正常工作。问题出在中间件上。

标签: javascript jquery json ajax object


【解决方案1】:

你需要:

声明你的对象:

var sendData = {
  flag: 1,
  sort: {
    imie_nazwisko: "asc"
  },
  where: {
    global_percent: 0,
    analityk: ["Dariusz Doda", "Arkadiusz Garbarczyk"]
  }
};

在$.ajax()函数中设置:

data: JSON.stringify(sendData),
contentType: "application/json;charset=UTF-8",

所以,你可以发送 JSON 对象。

看这个演示:

var sendData = {
  flag: 1,
  sort: {
    imie_nazwisko: "asc"
  },
  where: {
    global_percent: 0,
    analityk: ["Dariusz Doda", "Arkadiusz Garbarczyk"]
  }
};

$.ajax({
  url: 'https://jsonplaceholder.typicode.com/post',
  type: "POST",
  dataType: 'json',
  data: JSON.stringify(sendData),
  contentType: "application/json;charset=UTF-8",
  success: function(data) {
    done(data.MESSAGE);
  },
  error: function(data) {
    console.log(data);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多