Я пытаюсь использовать 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.
Javascript (JSONP)
Когда запрос API использует формат ответа Javascript, телом ответа будет вызов функции javascript, который принимает один параметр, содержащий объект ответа.Заголовок HTTP-Content-Type: application / javascript` также будет отправлен.
+-------------------------------------------------------------------------+
| Name | Type | Description |
+-------------+----------+------------------------------------------------+
| callback | string | Javascript callback function name. (required) |
+-------------------------------------------------------------------------+