Рубрики
Uncategorized

Междоменная сводка (jquery, php)

Автор оригинала: David Wong.

Вступление

Причины проекта, передние и задние междоменные, первый включает в себя междоменный контент, наступил на множество ям, подводя итог, чтобы избежать следующей встречи~

I. Запрос На Отправку Изображения

Поскольку изображения не определяют, являются ли они междоменными или нет, они могут отправлять только запросы get и не получать возвращаемого значения, которое можно использовать для отслеживания количества посещений страниц или рекламных кликов.

var img=new Image();
img.src='http://www.baidu.com';
img.onerror=function(){
 alert('error');
}
img.onload=function(){
 alert('success');
}

II. jsonp

Jsonp можно использовать только для запросов get, установив тип данных:’jsonp’

Когда функция вызывается в форме JSONP, например “мой URL? Обратный вызов=?” jQuery автоматически заменит его правильным именем функции для выполнения функции обратного вызова.

$.ajax({
  url: "test.html",
  dataType:'jsonp',
  success: function(html){
      //
  }
});

Фактически, реализация следующего эффекта, если он написан напрямую, является непосредственно выполняемой страницей после успешного запроса на выполнение функции вызова страницы.

CORS, Настройки сервера

1. Установка адреса Разрешенного запроса на стороне Сервера

 header( "Access-Control-Allow-Origin:*" );

2. Настройка Запрашиваемых Способов

 header( "Access-Control-Allow-Methods:POST,GET" );

3. Содержимое заголовка заголовка может быть настроено таким образом, чтобы разрешить дополнительную информацию о заголовке

header('Access-Control-Allow-Headers:value');
$.ajax({
            type: "GET",
            url: '#',
            Header: {// Add header information
                value:'123456'
            },
            crossDomain: true,
            success: function (data) {});

4. Отправляйте файлы cookie

Следует отметить, что для отправки файлов cookie нельзя отмечать звездочкой пункт “Доступ-Контроль-Разрешить-Происхождение” и необходимо указать четкое доменное имя, соответствующее запрашиваемой странице.

    response.setHeader("Access-Control-Allow-Credentials","true");
$.ajax({
            type: "GET",
            url: '#',
            crossDomain: true,
            XhrFields: {with Credentials: true}, // Send cookies
            success: function (data) {});

Конец

Ссылка: Детали CORS для совместного использования междоменных ресурсов