如何在ajax请求中创建动态数据对象

时间:2017-04-14 00:26:22

标签: javascript jquery ajax multidimensional-array

<{1}} data / data1 / data2 https://jsfiddle.net/c7n34e3x/1/只有data有效,但不是动态的

这是有效的

  var settings = {
    "async": true,
    "crossDomain": true,
    "url": "https://domain/api/v2/playlists/",
    "method": "POST",
    "headers": {
      "content-type": "application/json",
      "cache-control": "no-cache",
    },
    "processData": false,
    "data": "{\"playlist_content\" :{\"content_id\" : \"ef0a30ef-3198-4ce6-8927-e390257776ed\"}}"
  }

但我需要数据是动态的,如下所示..请参阅content_id

  var content_id = $(this).val();
  var settings = {
    "async": true,
    "crossDomain": true,
    "url": "https://domain/api/v2/playlists/",
    "method": "POST",
    "headers": {
      "content-type": "application/json",
      "cache-control": "no-cache",
    },
    "processData": false,
    "data": "{\"playlist_content\" :{\"content_id\" : \""+content_id+"\"}}"
  }

但这不起作用。我该怎么做才能动态创建数据设置?使用语法高亮显示可能会更好。

"data": {"playlist_content" : {"content_id" : content_id}}这也不起作用

这里有一个临时令牌https://jsfiddle.net/c7n34e3x/

1 个答案:

答案 0 :(得分:2)

你试过这样的吗?

var content_id = $(this).val();
var data = JSON.stringify({"playlist_content" : {"content_id" : content_id}});
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://domain/api/v2/playlists/",
  "method": "POST",
  "headers": {
    "content-type": "application/json",
    "cache-control": "no-cache",
  },
  "processData": false,
  "data": data
}

好的,根据JSFiddle演示更新代码here。它每次都有适当的凭据。