2013-10-04 3 views
1

Я пытаюсь отправить некоторые данные в JSobject через AJAX с помощью jQuery.Сериализация объекта JSON для отправки через AJAX

Это объект json.

var cookieData = { 
     'land' : document.URL, 
     'ref' : document.referrer 
    }; 

Объект их хранится в куки ... через JSON.stringify(cookieData);

Перед форма отсылается и AJAX пост сделал, мне нужно получить свойства объекта:

var cookieData = cookie.get(website); //return the cookieData in stringified form. 
var submitData = 'tracking=' +cookieData + jQuery("#quoteForm").serialize(); 

Однако, на конец приемника приложения, данные непригодны для использования, есть ли способ, которым я могу сериализовать его для использования в сообщении AJAX?

Приемный конец это PHP приложение, обрабатывается:

$trackingData = json_decode(htmlspecialchars_decode($_POST['tracking']),true); 
+3

ваш объект имеет дополнительную запятую, fyi. Кроме того, это просто объект javascript, а не объект json. что вы подразумеваете под данными, непригодно? вы забыли '&' между вашими данными json и сериализованными данными? Было бы проще передать эти данные как объект, а не строку, пусть jQuery превратит его в строку параметров. –

+0

Было бы очень полезно, если бы вы разместили полученный код PHP-приложения :) – tomahaug

+0

@KevinB Пятница после обеда уничтожает меня ... Вы правы – bear

ответ

1

Может быть, что проблема отсутствующего &, попробуйте этот

var submitData = 'tracking=' + cookieData + '&' + jQuery("#quoteForm").serialize(); 

Кстати, возвращающие ошибки PHP или json_decode/все, что вы используете для декодирования json?

+1

$ _REQUEST выглядит так, что отслеживание ключ содержит как cookieData, так и сериализованные данные формы? – bear

+0

@Shamil Точно. Вероятно, это проблема. Попробуйте добавить «&» в запросе, как предлагает daniele_dll :) – tomahaug

+0

@tomahaug это случилось с тем, что там ... позвольте мне жестко обновить JS – bear

Смежные вопросы