2011-07-31 2 views
1

Почему этот код jQuery не работает? что не так ?Эта страница jQuery не работает, почему?

Ожидаемое поведение, при котором он уведомляет содержимое запрошенного файла JSON, но это не так.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$.ajax({ 
    type: 'GET', 
    url: 'http://api.xxxxxxxxx.com/0.1/cities/key=xxxx', 
    dataType: 'jsonp', 
    crossDomain: true, 
    success: function(data){ 
       $.each(data, function(i, el){ 
        alert(el.city) 
       }); 
     ;} 
}); 
</script> 

<title>Example</title> 
</head> 
<body></body> 
</html> 
+1

Может быть, запрос не выполняется, так что ваш ' callback никогда не вызван. Или, возможно, ответ недействителен. Вы проверили консоль ошибок? –

+0

да! он говорит мне, что для большей половины ошибок «функция cf не всегда возвращает значение» - это самая первая строка файла библиотеки http://ajax.googleapis.com/ajax/libs/jquery/1.6. 2/jquery.min.js - я ничего не знаю обо всем этом :( – Fahd

+0

Попробуйте отфильтровать предупреждения из консольного представления, чтобы вы могли сосредоточиться на реальных ошибках. –

ответ

2

Ресурс, который вы загружаете не JSONP, это просто строка JSON, JSONP должен выглядеть следующим образом:

callback("jsonString"); 

Не все JSON может быть загружен как JSONP, он должен быть настройки для него конкретно.

JSONP

+0

, так что вы имеете в виду, что я редактирую тип json NOT jsonp? – Fahd

+0

@Fahd, Ну, вы не сможете загрузить его через домен как json, так что это будет работать только при создании этой страницы на qaym.com. –

+0

хорошо сказано. Я узнаю еще одно решение для отправки запроса API и обработки файла JSON – Fahd

0

функция должна иметь функцию обратного вызова

callback({json:true}); 

, и если вы не имеете контроля над целевым сервером, это не возможно сделать JSONP просьбой об

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