2014-01-23 7 views
0

Добрый вечер,JSON данных и URL для Ajax вызова

Я пытаюсь получить данные в формате JSON через Мир Warcraft сообщества API. У меня есть действующая программа, которая извлекает все данные из URL-адреса в следующем фрагменте кода, и на самом деле предупреждает мое имя.

<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    <title>Wreckedified Raiding</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script> 
     $(document).ready(function(){ 
      $.ajax({ 
       "url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?jsonp=myCallback", 
       "type":"GET", 
       "dataType":"jsonp", 
       "contentType":"application/json", 
       "jsonpCallback":"myCallback", 
       "success":function(data){ 
        console.log(data); 
        alert(data.name); 
       }    
      }) 
      alert("Hello World!"); 
     }); 
    </script> 
</head> 

Однако данные, которые я действительно хочу в формате JSON по следующему адресу:

http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items

Мой вопрос заключается в следующем: Как я должен форматировать этот URL в моем Ajax вызов, когда Мне также нужно добавить «jsonp = myCallback»?

Я хочу такую ​​информацию, как «averageItemLevel»: 562 найдено по этой ссылке, но не может использовать URL:

"url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items?jsonp=myCallback" 

я уверен, что есть простое решение, вовлекающие 's в URL или что-то в этом роде, но я попробовал несколько вариантов и явно чего-то не хватает.

Я ценю все время и заранее благодарю за любую помощь.

+0

Вы отдельные параметры с помощью '&', '' не?. – Barmar

+0

^^^ и jquery автоматически выполнит это для вас, если вы используете параметр 'data' при настройке вызова – Rooster

ответ

2

Используйте параметр data, чтобы указать параметры в вызове AJAX. jQuery правильно добавит их в URL.

 $.ajax({ 
      "url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?jsonp=myCallback", 
      "type":"GET", 
      "data": { fields: "items" }, 
      "dataType":"jsonp", 
      "contentType":"application/json", 
      "jsonpCallback":"myCallback", 
      "success":function(data){ 
       console.log(data); 
       alert(data.name); 
      }    
     }) 

Если вы хотите сделать это самостоятельно, то URL должен быть:

http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items&jsonp=myCallback 

? используется для разделения параметров от имени сценария и & используется для разделения каждого параметра.

+0

Barmar. Вам, конечно, удалось очистить мою ошибку, и я обязательно буду отмечать этот ответ как правильный. Как я могу пойти на один шаг глубже в данные JSON? Он работает, когда я предупреждаю о каждой из первых комбинаций клавиш/значений (например, имя), но когда я пытаюсь предупредить что-то в «элементах», например, оборудованноеItemLevel, я до сих пор не вижу результата? (Я попробовал предупреждение (data.items.averageItemLevel)) – Bonedancer

+0

В результате я не вижу 'equippedItemLevel'. Я вижу 'data.items.averageItemLevelEquipped'. – Barmar

+0

По шкале от 0 до 100 вы являетесь 95, а мне 6. Я назову своего следующего ребенка Бармаром. Еще раз спасибо за ваше время и помощь, и мне жаль, что они позволяют молодым панкам, таким как я здесь! Я изучаю! – Bonedancer

1

Отформатируйте строку запроса надлежащим образом Read This и ответьте на ваш вопрос check this out. Короче говоря, вы начинаете добавлять параметры, используя ?, а затем создавайте их и продолжаете добавлять с помощью &. Когда я прочитал URL, я прочитал ? в where и & как and

DOMAIN.come/pagename.ext ? para1 = знач1 & para2 = val2 & para3 = val3

Но поскольку вы собираетесь выполнить запрос AJAX с помощью JQuery, он позволяет добавлять все параметры в объект ajax, и он построит его для вас, используя data.

Пример:

$.ajax({ 
     "url":"http://exampleSite.com/request.php", 
     "type":"GET", 
     "data": {"para1":"val1","para2","val2", "para3","val3" }, 
     "dataType":"jsonp", 
     "success":function(data){ 
      console.log(data); 
     }    
    }) 

и если вы проверяете Developer Tool вы увидите, что браузер сделал этот запрос

http://exampleSite.com/request.php?para1=val1&para2=val2&para2=val2 
+0

Спасибо, Мохаммед, очень хорошо подытожил кого-то на моем уровне. – Bonedancer

+1

@Bonedancer Рад помочь. Имейте в виду, что вы также можете использовать «данные» в объекте ajax, чтобы сделать запросы POST и jquery сформироваться, если для вас. – MJoraid

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