我正在尝试使用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 reference
Javascript (JSONP)
当API请求使用Javascript响应格式时,响应体将是一个Javascript函数调用,它接受一个包含响应对象的参数。HTTP报头Content-Type: application/javascript '也会被发送。
+-------------------------------------------------------------------------+
| Name | Type | Description |
+-------------+----------+------------------------------------------------+
| callback | string | Javascript callback function name. (required) |
+-------------------------------------------------------------------------+
试试这个url:
http://otter.topsy.com/search.js?callback=test& q = test& apikey = 38 a260e9d12a4908b1af9184b691131
注意,我从搜索中更改了它。Json to search.js