Javascript 通过带有字符串索引的Ajax发送数组

Javascript 通过带有字符串索引的Ajax发送数组,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我试图通过Ajax发布带有字符串索引的数组时,不会传输任何数据。 请告诉我原因 var coord=new Array; coord["x"]=12; coord["y"]=12; coord["w"]=44; coord["h"]=66; console.lo

当我试图通过Ajax发布带有字符串索引的数组时,不会传输任何数据。 请告诉我原因

                         var coord=new Array;
                   coord["x"]=12;
                   coord["y"]=12;
                   coord["w"]=44;
                   coord["h"]=66;
                 console.log(coord);              
var parameter={coord:coord};
            $.ajax({
                type: 'POST',
                data: parameter,
                dataType: 'json',
                context: this,
                url:'http://localhost/server/main/crop_image',
                success: function(response) {

                },
                error: function() {

                },
                complete: function() {

                }
            });

更改行
var-coord=新数组
var-coord={}
(对象不是数组)

javascript中的数组是对象,因此可以执行
coord[“x”]=“bla bla”
(与
coord.x=“bla bla”
)操作,但JSON中的数组是对象列表,因此jQuery在将数据转换为JSON时会忽略数组对象的非列表属性


通过将coord更改为对象而不是数组,jQuery将把它转换为JSON对象,该对象按您的预期工作。

更改行
var-coord=new-Array
var-coord={}
(对象不是数组)

javascript中的数组是对象,因此可以执行
coord[“x”]=“bla bla”
(与
coord.x=“bla bla”
)操作,但JSON中的数组是对象列表,因此jQuery在将数据转换为JSON时会忽略数组对象的非列表属性


通过将coord更改为对象而不是数组,jQuery将把它转换为JSON对象,该对象按您的预期工作。

更改行
var-coord=new-Array
var-coord={}
(对象不是数组)

javascript中的数组是对象,因此可以执行
coord[“x”]=“bla bla”
(与
coord.x=“bla bla”
)操作,但JSON中的数组是对象列表,因此jQuery在将数据转换为JSON时会忽略数组对象的非列表属性


通过将coord更改为对象而不是数组,jQuery将把它转换为JSON对象,该对象按您的预期工作。

更改行
var-coord=new-Array
var-coord={}
(对象不是数组)

javascript中的数组是对象,因此可以执行
coord[“x”]=“bla bla”
(与
coord.x=“bla bla”
)操作,但JSON中的数组是对象列表,因此jQuery在将数据转换为JSON时会忽略数组对象的非列表属性


通过将coord更改为对象而不是数组,jQuery将把它转换为JSON对象,它的工作方式与您期望的一样。

尝试类似的方法

var parameter={coord:coord.join()};
在客户端,您将获得csv值,您可以根据服务器端语言再次将其转换为数组

PHP

 $pizza  = "piece1,piece2,piece3";
 $pieces = explode(",", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2
JAVA

 String[] ary = "piece1,piece2,piece3".split(",");

试试这样的

var parameter={coord:coord.join()};
在客户端,您将获得csv值,您可以根据服务器端语言再次将其转换为数组

PHP

 $pizza  = "piece1,piece2,piece3";
 $pieces = explode(",", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2
JAVA

 String[] ary = "piece1,piece2,piece3".split(",");

试试这样的

var parameter={coord:coord.join()};
在客户端,您将获得csv值,您可以根据服务器端语言再次将其转换为数组

PHP

 $pizza  = "piece1,piece2,piece3";
 $pieces = explode(",", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2
JAVA

 String[] ary = "piece1,piece2,piece3".split(",");

试试这样的

var parameter={coord:coord.join()};
在客户端,您将获得csv值,您可以根据服务器端语言再次将其转换为数组

PHP

 $pizza  = "piece1,piece2,piece3";
 $pieces = explode(",", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2
JAVA

 String[] ary = "piece1,piece2,piece3".split(",");

您正在使用字符串向数组添加值,这会向数组对象添加属性,而不是实际数组值

你有两个选择:

  • 使用对象
    {}
    而不是
    新数组
    ,或者
  • 使用
    coord.push(12);协调推进(42)

  • 希望对您有所帮助。

    您正在使用字符串向数组添加值,这会向数组对象添加属性,而不是实际的数组值

    你有两个选择:

  • 使用对象
    {}
    而不是
    新数组
    ,或者
  • 使用
    coord.push(12);协调推进(42)

  • 希望对您有所帮助。

    您正在使用字符串向数组添加值,这会向数组对象添加属性,而不是实际的数组值

    你有两个选择:

  • 使用对象
    {}
    而不是
    新数组
    ,或者
  • 使用
    coord.push(12);协调推进(42)

  • 希望对您有所帮助。

    您正在使用字符串向数组添加值,这会向数组对象添加属性,而不是实际的数组值

    你有两个选择:

  • 使用对象
    {}
    而不是
    新数组
    ,或者
  • 使用
    coord.push(12);协调推进(42)

  • 希望对您有所帮助。

    带字符串索引的数组其非数组:-)其简单对象,无论如何尝试使用
    数据:JSON.stringify(参数)
    带字符串索引的数组其非数组:-)其简单对象,无论如何尝试使用
    数据:JSON.stringify(参数)
    带字符串索引的数组其非数组:-)其简单对象,无论如何,请尝试使用
    data:JSON.stringify(参数)
    array及其字符串索引,而不是array:-)其简单对象,无论如何,请尝试使用
    data:JSON.stringify(参数)