У меня была такая же проблема, как вы упоминали при использовании $ .POST ().Есть две вещи, если вы используете метод jquery $ .post.Вам нужно добавить дополнительную скобку перед определенным типом данных ("JSON"), как показано ниже.Я не знаю почему, но это работает, он вернет данные.
$.post('server.fcgi', {}, ajax_callback,{}, 'json');
Во-вторых, вам необходимо проанализировать данные JSON, используя $ .parseJSON (data) в стороне от функции обратного вызова.
Еще одна вещь, чтобы убедиться, что URLизвлеките JSON, тип документа страницы должен быть определен как JSON в заголовке.
Я привел пример ниже.
$.post("url/path/here/to/json", {}, function(data){
if(data){ // just in case the called program had a problem
var obj = $.parseJSON(data);
.... do everything else using the Obj->
}
},{},"json");
Это будет работать.
Однако я рекомендую вам использовать другую функцию Jquery, специально реализованную для JSON, которая называется
$.getJSON();
Вот это url для получения дополнительной информации
И я предлагаю вам использовать следующий метод вместо описанного вами.
$(document).ready(function(){
$('.clickable').live('click', function() {
$.getJSON('server.fcgi', function(data){
window.location.hash = data.h1;
});
}
);
});