Преобразование кода jquery в прототип для кросс-браузерного Ajax-запроса с целью получения последних твитов - PullRequest
5 голосов
/ 01 июля 2011

Преобразование кода jquery в прототип для кросс-браузерного Ajax-запроса

Мой первый пост!

Мне пришлось получить мой последний твит, и поэтому я должен был выполнить кросс-браузерный запрос.Текущее приложение использует прототип, но я немного знаком с jquery.

Итак, я начал в jquery как:

$.ajax('http://twitter.com/status/user_timeline/apocalyptic_AB.json?count=1&callback=?', {
  dataType: "jsonp",
  success:function(data,text,xhqr){
    $.each(data, function(i, item) {
      console.log(item.text);
    });
  }
});

Я получил предупреждение как:

'Resource interpreted as Script but transferred with MIME type application/json.'

Но я вижу последний твит.Хорошо.

Итак, я решил сделать то же самое в прототипе и затем попытаться устранить предупреждения, если таковые имеются.Но я даже близко не приблизился даже после нескольких часов попыток.

Это то, что я изначально придумал в прототипе.У меня было много изменений / изменений, которые последовали, но ни одно из них не сработало.

new Ajax.Request('http://twitter.com/status/user_timeline/apocalyptic_AB.json?count=1&callback=?', {
  contentType: "jsonp",
  onSuccess:function(transport){
    console.log(transport) ;
  }
});

Запрос успешно выполнен, но текст ответа равен nil / "".Я не получаю ошибки в Firefox, но в Chrome ошибка:

XMLHttpRequest cannot load http://twitter.com/status/user_timeline/apocalyptic_AB.json?count=1&callback=?. Origin http://localhost:4000 is not allowed by Access-Control-Allow-Origin.
Refused to get unsafe header "X-JSON"

Любая помощь будет принята с благодарностью.Спасибо.

Ответы [ 3 ]

2 голосов
/ 02 июля 2011

Спасибо, Дарин, за то, что вернул меня на JSONP Дандина за прототип js.

Хотя я не упомянул в первую очередь (вопрос становился немного длиннее), я пытался использовать Ajax.JSONRequest от Dandean (та самая ссылка, на которую вы ссылаетесь).Запрос постоянно терпел неудачу, и я не стал его использовать, так как предполагал, что это будет довольно просто сделать и в прототипе, как в jquery.Поскольку я больше не получил ответов, вполне оправданно, я решил обернуть голову, используя Ajax.JSONRequest.Ошибка запроса не была вызвана тайм-аутом шлюза.Это было из-за того, что в URL-адресе запроса повторялся обратный вызов params.

Итак, URL-адрес запроса оказался

GET (twitter.com/status/user_timeline/apocalyptic_AB.json?count=1&&callback=?&callba‌ck=_prototypeJSONPCallback_0) 

Таким образом, я определил свой URL-адрес без обратного вызова, и он выполнялся по желанию,Тем не менее, я все еще получаю предупреждение:

Resource interpreted as Script but transferred with MIME type application/json

Вот эквивалентный прототип:

new Ajax.JSONRequest('http://twitter.com/status/user_timeline/apocalyptic_AB.json?count=1', {
    onSuccess:function(response){
    response.responseJSON.each(function(item){
        console.log(item.text);
    });
0 голосов
/ 25 июля 2011

Относительно ошибки [Отказано в получении небезопасного заголовка "X-JSON"], это может произойти, если ваша страница использует SSL, но URL-адрес, на который ссылается ваш вызов AJAX, также не является HTTPS-URL.

0 голосов
/ 01 июля 2011

Вы можете взглянуть на следующую страницу .

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