Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ajax json метод $.get (https://javascript.ru/forum/jquery/56342-ajax-json-metod-%24-get.html)

Nifler 11.06.2015 09:31

ajax json метод $.get
 
нужно передать данные на сервер при помощи аякс и получить данные обратно.

вот какой код:
function myCallback(returnedData) {
			alert(returnedData);
			alert(returnedData.name);
		}
		var data = "turn=1";
		$("#f1").click(function(){
			$.get("index.php", data, myCallback);
		});

передаются данные нормально, но далее нужно получить обратно.
вот что с сервера передается
echo json_encode(array("name"=>"John","time"=>"2pm"));


и после этого алерт первый мне выдает {"name":"John","time":"2pm"}
а второй передает undefined

как выколупать данные с json формата, чтобы их нормально использовать?

laimas 11.06.2015 09:52

Либо сервер должен передавать заголовок типа данных, либо так:
$("#f1").click(function(){
            $.get("index.php", data, myCallback);
        }, "json");

Nifler 11.06.2015 10:19

Цитата:

Сообщение от laimas (Сообщение 374717)
Либо сервер должен передавать заголовок типа данных, либо так:
$("#f1").click(function(){
            $.get("index.php", data, myCallback);
        }, "json");

выдало ошибку.
еще попробовал вот так:
$.get("index.php", data, myCallback, "json");

но при этом ошибки не вывело но и не сработало ничего. вообще непонятно както.

Nifler 11.06.2015 10:48

аааааа, блин. все понял. у меня файл php был сохранен в кодировке UTF-8
и оно ставило это чертов значек в начале. по этому js не мог расспознать json формат.

laimas 11.06.2015 11:48

Цитата:

Сообщение от Nifler
у меня файл php был сохранен в кодировке UTF-8
и оно ставило это чертов значек в начале. по этому js не мог расспознать json формат.

JSON вообще работает с UTF-8, правда для латиницы по барабану utf или нет. А сохранять UTF нужно без ВОМ. Тем не менее, для корректной работы в любом случае нужно либо передавать заголовок типа данных, либо указывать тип принимаемых данных методу.


Часовой пояс GMT +3, время: 01:55.