Получение неверной метки в Firefox - PullRequest
2 голосов
/ 19 сентября 2011

Я получаю недопустимую ошибку метки в firefox при получении содержимого json из другого домена Мой код JS:

$.getJSON('http://www.upsidelearning.com/blog/blogapp/getBlogDetails.php?getBlogsList=1&jsoncallback=?', function(data){
     alert("Success");
      }); 

И в консоли Chrome ошибка получена следующая ошибка:

(Warning)Resource interpreted as Script but transferred with MIME type text/html.
(Error) Uncaught SyntaxError: Unexpected token :

РЕДАКТИРОВАТЬ: Мой ответ JSON:

{"data":[{"title":"How Long Does It Take To Develop An Hour Of Elearning?","publishDate":"15 September 2011","author":"Abhijit Kadle","permalink":"http:\/\/www.upsidelearning.com\/blog\/index.php\/2011\/09\/15\/how-long-does-it-take-to-develop-an-hour-of-elearning\/","thumbnail":"http:\/\/www.upsidelearning.com\/blog\/blogapp\/images\/blogpost-icon.png","id":9197}]}

Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Проблема в том, что сценарий на стороне сервера не имеет префикса обратного вызова. Вам нужно исправить это. Он возвращает простой JSON, который не может быть выполнен без передачи его в функцию или обратный вызов.

1 голос
/ 19 сентября 2011

Я получаю недопустимую ошибку метки в Firefox при получении содержимого JSON из другого домена.

Из-за ограничения политики одного и того же отправка запросов AJAX в разные домены запрещена. Есть несколько обходных путей:

  1. Используйте JSONP. Об этом есть специальный раздел в документации getJSON(). Работает только если это поддерживает удаленный домен. Так, например, вместо:

    {"data":[{"title":"How Long Does It Take To Develop An Hour Of Elearning?","publishDate":"15 September 2011","author":"Abhijit Kadle","permalink":"http:\/\/www.upsidelearning.com\/blog\/index.php\/2011\/09\/15\/how-long-does-it-take-to-develop-an-hour-of-elearning\/","thumbnail":"http:\/\/www.upsidelearning.com\/blog\/blogapp\/images\/blogpost-icon.png","id":9197}]}
    

    удаленный домен должен иметь возможность вернуть:

    callback({"data":[{"title":"How Long Does It Take To Develop An Hour Of Elearning?","publishDate":"15 September 2011","author":"Abhijit Kadle","permalink":"http:\/\/www.upsidelearning.com\/blog\/index.php\/2011\/09\/15\/how-long-does-it-take-to-develop-an-hour-of-elearning\/","thumbnail":"http:\/\/www.upsidelearning.com\/blog\/blogapp\/images\/blogpost-icon.png","id":9197}]})
    

    , где клиент может установить имя callback.

  2. Если JSONP не подходит, вы можете написать серверный скрипт на вашем домене, который будет служить мостом между вашим доменом и удаленным доменом, а затем отправить запрос AJAX вашему скрипту.


UPDATE:

После многочисленных комментариев кажется, что вы пытаетесь использовать YQL. Вот полная рабочая демонстрация :

$.get('http://www.upsidelearning.com/blog/blogapp/getBlogDetails.php?getCategories=1&callback=?', function(result) {
    // you could parse the JSON like this:
    // var json = $.parseJSON(($(result.responseText).filter('p').text()));
    // alert(json.data[0].id);

    alert("Success");
});

Обратите внимание, что вы должны использовать $.get, а не $.getJSON.

...