Формат api JSONP для графика Facebook, что означает / * * / в первой строке? - PullRequest
5 голосов
/ 07 ноября 2011

Я заметил пустой блок комментариев в выводе JSONP, возвращенный api-графиком facebook для всех методов.

URL, который я назвал:

https://graph.facebook.com/NUMERIC_FACEBOOK_ID/friends?access_token=ACCESS_TOKEN_STRING&callback=theGreatFunction

Вывод JSONP:

/**/ theGreatFunction({
   "data": [
      {
         "name": "First Friend",
         "id": "XXXX"
      },
      {
         "name": "Second Friend",
         "id": "XXXXXX"
      },
     ........

Мой вопрос: что означает пустой блок комментария /* */ перед функцией обратного вызова?Есть ли у него особая цель?Исправляет ли это какой-либо известный javascript gotcha?

Ответы [ 2 ]

14 голосов
/ 17 апреля 2013

Мы добавили это для защиты от атаки, когда сторонний сайт обходит тип ответа, выполнив:

<object type="application/x-shockwave-flash"
 data="http://graph.facebook.com?callback=[specifically crafted flash bytes]">
</object>

Google делает нечто подобное, за исключением того, что они используют // ... + \ n (например, http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full?alt=json&callback=foo)

0 голосов
/ 07 ноября 2011

Может быть какой-то разделитель для фиксированного запуска.Я думаю, у Фейсбука была причина, но она есть, но мы можем только догадываться, и это не имеет значения, не так ли?:)

...