snap.com моментальные снимки не подчиняются Той же политике Организации?

StackOverflow https://stackoverflow.com/questions/479058

  •  20-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь написать какой-нибудь Javascript, который показывает данные на основе HTTP-запроса GET на сервер в другом домене.Из того, что я прочитал, это усложняется из-за SOP (политика того же происхождения).

Мне любопытно, как snap.com Работают "Мгновенные снимки" (предварительные просмотры веб-страниц).Вот пример страницы: http://premshree.livejournal.com/66129.html

Может ли кто-нибудь объяснить, как это возможно?Чтобы включить snap.com "Мгновенные снимки", все, что вам нужно сделать, это добавить некоторый Javascrpt в ваш заголовок.Похоже, что веб-страница примера не подчиняется SOP.

Это было полезно?

Решение

JavaScript "Snap Shots" размещен на snap.com, поэтому у него есть доступ ко всем вещам snap.com т. е.предварительный просмотр страницы, поскольку она фактически подчиняется той же политике Origin.Однако он не смог бы совершать какие-либо вызовы на какие-либо страницы на livejournal.com.

Надеюсь, это поможет.

Другие советы

Следуя ответу Яна, вы можете заставить AJAX преодолеть доменный барьер, представленный SOP, используя JSONP.Что такое JSONP?Это тот же самый объект JSON, который мы все знаем и любим, но он обернут функцией:JSON:

{
  prop1: "a",
  prop2: 7
}

JSONP:

myfunction(
{
  prop1: "a",
  prop2: 7
});
Как вы можете видеть, объект JSON передается в качестве параметра в myfunction функция.Итак, если бы вы ссылались на ресурс скрипта, размещенный в другом домене, используя простой script тег, и этот ресурс возвращал данные JSONP, тогда вы могли бы просто определить функцию myfunction который принимает объект JSON, а затем что-то с ним делает.jQuery поддерживает вызовы JSONP Ajax с использованием Получить Json способ.Вместо выполнения AJAX-вызова jQuery вставляет script тег, указывающий на URL-адрес, с которого вы пытаетесь получить данные.Когда скрипт загружается, ваша функция обратного вызова выполняется, и вуаля!- у вас есть данные в формате JSON!Этот метод имеет 3 предпосылки.

  1. Служба, у которой вы пытаетесь запросить данные, возвращает JSON (либо по умолчанию, либо по запросу с использованием параметра).
  2. Служба поддерживает JSONP, позволяя вам указать функцию обратного вызова, в которую нужно обернуть данные JSON.
  3. Вы достаточно доверяете этому внешнему источнику, чтобы позволить их коду выполняться на вашем сайте.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top