2013-09-03 5 views
0

В документации говорится, что при использовании load() со вторым (данным) аргументом данные будут опубликованы. Но это не работает.jQuery .load() с аргументом данных не отправляет

$('#open').load('ajax/open_map.php',$('.frm_open').serialize()); 

Запрос сделал это:

GET /ajax/open_map.php?filter_name=blahblah&filter_id=1 HTTP/1.1 

Как заставить его POST, а не GET?

+2

Вы проверили API? 'Метод POST используется, если данные предоставляются как объект; в противном случае предполагается GET. http://api.jquery.com/load/. 'serialize()' возвращает строку. –

+0

любой способ сериализации формы для объекта? –

ответ

0
$('#open').load('ajax/open_map.php',{data:$('.frm_open').serializeArray()}); 

Вы должны размещать как объект

+0

oh, это опубликует одну строку, содержащуюся в 'data' ... но, да, это работает как сообщение ... так что мне нужно сериализовать форму вручную ... –

+1

Почему вы не можете использовать .serializeArray() refer: http: //api.jquery.com/serializeArray/, чтобы сделать его опубликованным как объект массива, а затем на стороне сервера вы можете обработать его, используя метод post –

+0

Отлично, спасибо. –

0

JQuery нагрузки просто эквивалентно $ .get так использовать $ .post. http://api.jquery.com/load/

$.get(url, data, success) 
+0

Это не так, потому что $ .post не интерпретирует скрипты внутри результата запроса. И мне нужен POST, а не GET. –

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