javascript — ошибка CORS при вызове служб RESTful из-за корпоративного брандмауэра

Я получаю следующую ошибку CORS, когда пытаюсь сделать вызовы к моим веб-сервисам RESTful, написанным на PHP ТОЛЬКО когда я за своим корпоративным брандмауэром.

Отказался от подключения кHTTP: // PRX-9k-40-hadc / cfru = aHR0cDovL2phY2tzb25uZy5wcm9qZWN0c2JpdC5vcmcvcGl6emFwbGFjZS9sb2dpbl9hZG1pbi5waHA / dXNlcmlkPWFkbWluJnBhc3N3b3JkPWFkbWlu‘потому что он нарушает следующую директиву Content Security Policy: «connect-src’ self ‘data: gap: http://myurl.com https://ssl.gstatic.com ‘unsafe-eval’ ‘self’ ws: «.

Этого не происходит, когда я не нахожусь за корпоративным брандмауэром (т.е. я вхожу в систему из дома и не подключен через корпоративный VPN).

Моя политика безопасности контента следующая:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: http://myurl.com https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

И вот как я сделал свой Ajax-вызов:

$.ajax({
url: url,
type: 'GET',
data: JSONObject,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (arr) {
_getLoginResult(arr);
},
error: function () {
validationMsg();
}
});

Мои заголовки в моем веб-сервисе PHP выглядят так:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
header("Content-Type: application/json; charset=UTF-8");

Опять же, вот симптомы:

Все здесь работает нормально, когда я НЕ за своим корпоративным брандмауэром и не вошел в свою компанию через VPN.

После того, как я вошел в систему, происходит ошибка CORS, и ни одно из изменений настроек, которые я пытался внести на сервере, или изменение настроек в моей политике безопасности контента ничего не меняет.

Я вижу, что он говорит «отказался подключиться к Http: // PRX-9k-40-hadcMsgstr «Это определенно не URL моих веб-сервисов RESTful. Это похоже на прокси-сервер моей компании.

Кто-нибудь сталкивался с этим? Я хотел бы иметь возможность запускать свои веб-службы за корпоративным брандмауэром.

2

Решение

Я решил это. Мой корпоративный брандмауэр был настроен на удаление заголовков контроля доступа, которые он считает опасными. Очевидно, он чувствовал, что это опасно, если нет доступа через SSL.

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
header("Content-Type: application/json; charset=UTF-8");

Таким образом, все, что я сделал, это сделал мои вызовы службы RESTful с https: // вместо http: // и все в порядке.

Я определенно не думал, что это была проблема, потому что меньше недели назад эта директива брандмауэра не существовала.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector