Ajax в JavaScript не работает - PullRequest
0 голосов
/ 29 июня 2009
$(document).ready(function() {

$('#content').html('');
$.ajax({
        url:'data.json',
        dataType: "json",
        success: function(data) {
                $('#content').append('<p>'+data.rank+'</p>');
        }
});});

В этом коде (это работает) data.json содержит данные JSON в этом формате:

{
"user_id":"3190399",
"user_name":"Anand_Dasgupta",
"followers_current":"86",
"date_updated":"2009-06-04",
"url":"",
"avatar":"205659924\/DSC09920_normal.JPG",
"follow_days":"0","started_followers":"86",
"growth_since":0,
"average_growth":"0",
"tomorrow":"86",
"next_month":"86",
"followers_yesterday":"86",
"rank":176184,
"followers_2w_ago":null,
"growth_since_2w":86,
"average_growth_2w":"6",
"tomorrow_2w":"92",
"next_month_2w":"266",
"followersperdate":[]
}

Эти данные поступают с URL:

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3
(Нажмите на URL, чтобы получить данные)

Но когда я заменяю data.json в функции $.ajax на URL, который содержит те же данные, приведенный ниже код не работает ...

$(document).ready(function() {

$('#content').html('');
$.ajax({
      url:'http://twittercounter.com/api/username=Anand_Dasgupta&output=json&results=3',
        dataType: "json",
        success: function(data) {
                $('#content').append('<p>'+data.rank+'</p>');
        }
});});

Любая помощь с проблемой будет высоко оценена.
Спасибо в ожидании,
Ананд

Ответы [ 2 ]

1 голос
/ 29 июня 2009

Дело в том, что вы пытаетесь получить доступ к URL в другом домене (если вы на самом деле не находитесь на twittercounter.com причины). В любом случае, если вы хотите использовать межсайтовые вызовы AJAX, которые браузеры не разрешают из-за безопасности, вы должны использовать «трюк» JSONP. Вы можете использовать JSONP с jQuery, который, похоже, используется. Последнее, что я проверил, однако, jQuery требовал некоторой конфигурации на стороне сервера, поэтому, если вы не можете изменить полученные данные, вам придется выполнить запрос AJAX вручную, и в этом случае вы сможете получить его, используя метод JSONP.

0 голосов
/ 29 июня 2009

В основном вы пытаетесь получить доступ к междоменному запросу AJAX. Это недопустимо, поскольку это может поставить под угрозу безопасность браузера. Вот способ, которым вы можете обойти это:

http://code.google.com/p/cross-domain-ajax/

Noah

Редактировать: Пн. 29 июня 10:24:51 CDT 2009 googletorp FTW!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...