Странные проблемы xDomain с $ .getJSON - PullRequest
0 голосов
/ 26 августа 2011

Я пытаюсь использовать Topsy для отслеживания некоторых характеристик.У меня был скрипт, который работал локально, который использует $ .getJSON, чтобы получить то, что мне нужно от их API.

Теперь у меня возникла проблема после развертывания, я получаю, что исходный код не разрешен. Я перепробовал практически все, что знаю.чтобы их JSONP интерпретировал

код, который работает локально

get_total = (trend, duration, callback) ->
  requests = []
  search_words = []
  if trend.total?
    callback(trend, trend.total)
  else
    for item in trend.search_terms
      search_words.push(item.term)
    keywords = search_words.join('+OR+')
    url = "http://otter.topsy.com/search.json?callback=test&q=#{keywords}&window=#{duration}&apikey=38A260E9D12A4908B1AF9184B691131"
    requests.push($.getJSON(url, (data) ->
        trend.total = data.response.total
    ))

    $.when.apply($, requests).then ->
      callback(trend, trend.total)

Когда я удаляю параметр для &callback и добавляю ?, я получаю ошибки синтаксического анализа, и json по-прежнемуотправляется с MIME-типом json, а не со скриптом.

в соответствии с Topsy API, добавление обратного вызова - все, что вам нужно для обслуживания скрипта вместо json.

Topsy JSONP Refrence

Javascript (JSONP)

Когда запрос API использует формат ответа Javascript, телом ответа будет вызов функции javascript, который принимает один параметр, содержащий объект ответа.Заголовок HTTP-Content-Type: application / javascript` также будет отправлен.

+-------------------------------------------------------------------------+
|   Name      |  Type    |  Description                                   |
+-------------+----------+------------------------------------------------+
|   callback  |  string  |  Javascript callback function name. (required) |
+-------------------------------------------------------------------------+

1 Ответ

1 голос
/ 26 августа 2011

Попробуйте этот URL:

http://otter.topsy.com/search.js?callback=test&q=test&apikey=38A260E9D12A4908B1AF9184B691131

Обратите внимание, я изменил его с search.json на search.js

...