gpt4 book ai didi

javascript - jQuery Ajax 显示 0 而不是数组

转载 作者:行者123 更新时间:2023-12-03 05:31:03 24 4
gpt4 key购买 nike

我正在尝试将 json 插入数组内部,但是当我使用 Ajax 发送参数时,它会放入 0 而不是数组...

不太确定如何摆脱它..如果有人知道如何解决这个问题,我将非常感激!

  var $selector = $(this).find('.button-selector');
var $element = $(this).find('.button-type');
var $attr = $(this).find('.selector ul li.active').attr('type');

var $text = $(this).find('textarea').val();
var $buttons = [];

$selector.each(function(){
var $titleBtn = $(this).find('input[name=button-title]').val();

if($attr == 'block'){
var $payload = "";

var $value = $element.find('.block-select select').val();
if($value == 1) {
$payload = "JOIN_CONVERSATION_"+story_id+"";
} else if ($value == 2) {
$payload = "NEXT_BITE_"+story_id+"";
} else if ($value == 3) {
$payload = "INSTANT_ARTICLE_"+story_id+"";
}

button = {
"type": "postback",
"title": $titleBtn,
"payload": $payload
};

$buttons.push(button)

} else if($attr == 'url') {
var $url = $element.find('.url-select input[type=url]').val();
var $webView = $element.find('.url-select select').val();

button = {
"type": "web_url",
"url": $url,
"title": $titleBtn,
"webview_height_ratio": $webView
};

$buttons.push(button)
}
});

$.ajax({
async: false,
type: 'POST',
url: '/variable',
dataType: 'json',
data: {
"element":{
"notification_type": notification_type,
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": $text,
"buttons": $buttons
}
}
}
}
}
});

按钮的输出是:

"buttons"=>{"0"=>{"type"=>"postback", "title"=>"rwerwe", "payload"=>"JOIN_CONVERSATION_256"}}

而不是:

"buttons"=>[{"type"=>"postback", "title"=>"rwerwe", "payload"=>"JOIN_CONVERSATION_256"}]

最佳答案

我希望这能解决您的问题。

您需要使用JSON.stringify首先将您的对象正确序列化为 JSON,然后指定 contentType: "application/json" 以便您的服务器理解它的 JSON 并将其反序列化回来。这应该可以解决问题:

var jsonData = {
"element":{
"notification_type": notification_type,
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": $text,
"buttons": $buttons
}
}
}
}
};

$.ajax({
async: false,
type: 'POST',
url: '/variable',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(jsonData)
});

关于javascript - jQuery Ajax 显示 0 而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40943408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com