Не удается подружить Jquery.Json и php

Тема в разделе "Другие языки", создана пользователем dandandan, 9 авг 2011.

Модераторы: Цукер
  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Перебрал кучу вариантов, никак success не происходит. Версия jquery : v1.6.2
    аякс

    Страница грузится с другого хоста.
    PHP:
    jQuery(document).ready(function(){
        
    // грузим страницу для показа
        
        
    jQuery.get'http://anton.localhost/getpage.php?user_id='+user_id, {}, onAjaxSuccess"json" )
        .
    success(function() { alert("second success"); })
        .
    error(function() { alert("error")})
        .
    complete(function() { alert("complete"); });

        function 
    onAjaxSuccess(obj)
            {
              
    alert(obj.response);
              
    alert(obj.mess);
             
            }
    })
    Код php
    PHP:
    header('Content-Type: charset=utf-8');
    header('Content-type: application/json');

    $txt='{"mess":1,"b":2,"c":3,"d":4,"e":5}';    
    echo 
    $txt;
    Где что делаю не так? Последовательно вызываются error и complete . Файрбаг не показывает никаких ошибок.
     
  2. Monterpan

    Monterpan Постоялец

    Регистр.:
    3 мар 2008
    Сообщения:
    150
    Симпатии:
    27
    Скорее всего вы грузитесь к другому домену, что запрещено правами.

    Или переписывайте на:
    PHP:
     jQuery.get'/getpage.php?user_id='+user_id, {}, onAjaxSuccess"json" )
    или курите про JSONP
     
  3. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Да, мне нужно обратиться к другому сайту и забрать данные оттуда.
    Вот типовой пример на сайте джиквери, который есть в мануале:
    PHP:
    ExampleLoads the four most recent cat pictures from the Flickr JSONP API
    <!
    DOCTYPE html>
    <
    html>
    <
    head>
      <
    style>imgheight100pxfloatleft; }</style>
      <
    script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
      <div id="images">
    </div>
    <script>
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
      {
        tags: "cat",
        tagmode: "any",
        format: "json"
      },
      function(data) {
        $.each(data.items, function(i,item){
          $("<img/>").attr("src", item.media.m).appendTo("#images");
          if ( i == 3 ) return false;
        });
      });</script>
    </body>
    </html>
    $.getJSON() - это то же самое что и jQuery.get( '/getpage.php?user_id='+user_id, {}, onAjaxSuccess, "json" ) специально смотрел внутренности скрипта.
    В этом то примере он с фликра забирает данные.
    Добавлено через 29 минут
    Вопрос снят. Нужен специальный формат возвращаемых данных. Я возвращал его без jQuery162005652272474724851_1312877039982 вот такой надписи. Она генерируется автоматически. Выцепить можно через GET['jsoncallback']
    PHP:
    jQuery162005652272474724851_1312877039982({
            
    "mess" "123564",
            
    "title""Recent Uploads tagged cat",
            
    "link""http://www.flickr.com/photos/tags/cat/",
            
    "description""",
            
    "modified""2011-08-09T07:36:15Z",
            
    "generator""http://www.flickr.com/",
            
    "items": [
           {
                
    "title""you thought you knew",
                
    "link""http://www.flickr.com/photos/care-carolinedavidsart/6024592343/",
                
    "media": {"m":"http://farm7.static.flickr.com/6133/6024592343_992f45b02b_m.jpg"},
                
    "date_taken""2011-08-09T00:36:15-08:00",
                
    "description"" <p><a href=\"http://www.flickr.com/people/care-carolinedavidsart/\">Caroline David<\/a> posted a photo:<\/p> <p><a href=\"http://www.flickr.com/photos/care-carolinedavidsart/6024592343/\" title=\"you thought you knew\"><img src=\"http://farm7.static.flickr.com/6133/6024592343_992f45b02b_m.jpg\" width=\"240\" height=\"131\" alt=\"you thought you knew\" /><\/a><\/p> ",
                
    "published""2011-08-09T07:36:15Z",
                
    "author""nobody@flickr.com (Caroline David)",
                
    "author_id""46147396@N05",
                
    "tags""blue orange animal illustration cat graphicdesign body anatomy vector carolineldavid"
           
    },
           {
                
    "title""Fuzzy",
                
    "link""http://www.flickr.com/photos/mitymous/6024479151/",
                
    "media": {"m":"http://farm7.static.flickr.com/6204/6024479151_2a71f3e4b3_m.jpg"},
                
    "date_taken""2011-07-22T14:50:16-08:00",
                
    "description"" <p><a href=\"http://www.flickr.com/people/mitymous/\">Mitymous<\/a> posted a photo:<\/p> <p><a href=\"http://www.flickr.com/photos/mitymous/6024479151/\" title=\"Fuzzy\"><img src=\"http://farm7.static.flickr.com/6204/6024479151_2a71f3e4b3_m.jpg\" width=\"225\" height=\"240\" alt=\"Fuzzy\" /><\/a><\/p> ",
                
    "published""2011-08-09T06:29:59Z",
                
    "author""nobody@flickr.com (Mitymous)",
                
    "author_id""93406391@N00",
                
    "tags""church cat hafb summer2011"
           
    }
            ]
    })
     
  4. sema

    sema Постоялец

    Регистр.:
    18 май 2007
    Сообщения:
    95
    Симпатии:
    21
    Можешь еще почитать в сторону jsonp (тот же json) если вздумается использовать ajax.