Как игнорировать MIME-типы, переменные PHP в файле JS

У меня есть сценарий PHP, который называется файлом JavaScript, чтобы визуализировать некоторые переменные на стороне сервера внутри сценария, т.е.

<script src="script.js.php?var1=x&var2=y"></script>

Этот метод отлично работает с Apache, но с NGINX браузер не загружает скрипт из-за строгой проверки MIME. Я получаю эту ошибку в Safari:

Refused to execute https://mydomain/script.js.php?var1=x&var2=y as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.

PHP не рендерится в файле JS, хотя скрипт дает: header("Content-type: text/javascript; charset: UTF-8"); Похоже, что визуализировать файл CSS очень хорошо, используя эту же технику.

я не вижу add_header X-Content-Type-Options nosniff; добавлено где-нибудь в конфигурации NGINX (возможно, я не нахожу нужный файл).

Есть ли способ полностью отключить эту функцию проверки MIME для сайта? Спасибо!

1

Решение

Это кажется ужасным способом сделать что-то. Это не делает ваш код очень переносимым или легко поддерживаемым кем-то другим. Вам лучше использовать ajax-вызов и посылать ваши переменные как post или получить таким образом. Это немного больше работы, но определенно делает для лучшего кода.

Кроме того, это, конечно, означает, что вам не нужно вносить какие-либо изменения веб-сервера, чтобы это работало.

КСТАТИ — Это JQuery AJAX, настроить по своему усмотрению. JQuery не требуется, это просто легче заглушить.

<script>
var var1 = '<?php echo $var1; ?>';
var var2 = '<?php echo $var2; ?>';
var dataStream = { 'var1' : var1, 'var2' : var2 };
$.ajax({
method: "POST",
url: "some.php",
data: dataStream,
dataType: 'json',

}
</script>
0

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

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

По вопросам рекламы [email protected]