gpt4 book ai didi

javascript - jquery 不发布数组数据

转载 作者:行者123 更新时间:2023-11-28 15:15:11 25 4
gpt4 key购买 nike

我在 stackoverflow 上尝试了 10 种不同的解决方案来解决这个问题,但没有一个有效,这就是问题所在,我需要通过 ajax 将数组发布到 url简单吧?

该数组来自像 $_post[xxx] 这样的发布值,我将其存储在变量中。

我模拟了一个js函数,它有同样的错误,而不是传递我刚刚作为函数中的var包含的数组,问题是数据没有发布到url。粘贴链接:http://pastebin.com/8ivWqJ8g

function generateImage() {
var Imagedata = [];

Imagedata['id'] = 1;
Imagedata['type'] = 'some type';


var url = '';
$.ajax({
url: url,
processData: false,
dataType: 'JSON',
data: JSON.stringify(Imagedata) ,

method:'POST',
async: false
});

最佳答案

当您将数据转换为 JSON 时,数组的命名属性不会被序列化。

数组应该保存一组有序的值,而不是一组任意的名称:值对。

使用普通对象 ({}),而不是数组。

<小时/>

旁白:

不要使用 processData: false 除非您将非字符串或对象的内容传递给 data(例如 FormData > 对象)。由于您传递的是字符串,因此它是无害的,但毫无意义。如果你传递一个对象(你可能应该这样做,见下文),它会破坏东西。

不要使用async: false。它已被弃用,并且会损害用户体验(因为它会锁定 JS 线程,直到响应到达)。

如果您想填充 PHP 的 $_POST,那么请勿将数据格式化为 JSON。将对象直接传递给 data:,而不使用 JSON.stringify

如果您确实想发出 JSON 格式的请求,请不要忘记设置 contentType

<小时/>
function generateImage() {
var Imagedata = {
id: 1,
type: "some type"
};

var url = '';

$.ajax({
url: url,
dataType: 'JSON',
data: Imagedata,
method: 'POST'
});

// or …

$.ajax({
url: url,
dataType: 'JSON',
contentType: "application/json",
data: JSON.stringify(Imagedata),
method: 'POST'
});

}

关于javascript - jquery 不发布数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299202/

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