проблема с отправкой массива с помощью jquery ajax

#php #jquery

#php #jquery

Вопрос:

 var myNames= ["Chris","Kate","Steve"];
$.ajax
({
cache:false,
    type: "POST",
    url: "check.php?timestamp=" new Date().getTime(),
    data: "myCars[]=" myCars,
    success: function(msg)
         {
 ...
         }
});
  

с var_dump($myNames) на странице php я вижу

 array(1) { [0]=> string(16) "Chris,Kate,Steve" }
  

но
я ожидаю

 array(3) {....}
  

почему я вижу array(1) { [0]=> string(16) "Chris,Kate,Steve" }

Комментарии:

1. ммм …. вы используете POST и GET одновременно

2. Совершенно законно отправлять строку запроса в запросе POST. Строки запроса не подразумевают GET.

Ответ №1:

Есть лучший способ сделать это — просто передать объект для data :

 var myNames= ["Chris","Kate","Steve"];
$.ajax
({
cache:false,
    type: "POST",
    url: "check.php?timestamp=" new Date().getTime(),
    data: {'myNames': myNames},
    success: function(msg)
         {
 ...
         }
});
  

jQuery закодирует его за вас.