это - проблема с Nginx, который влияет только на Firefox. У меня есть эта конфигурация: http://pastebin.com/q6Yeqxv9
upstream connect {
server 127.0.0.1:8080;
}
server {
server_name admin.example.com www.admin.example.com;
listen 80;
return 301 https://admin.example.com$request_uri;
}
server {
listen 80;
server_name ankieta.example.com www.ankieta.example.com;
add_header Access-Control-Allow-Origin $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, PATCH, DELETE';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Access-Control-Request-Method,Access-Control-Request-Headers,Cache,Pragma,Authorization,Accept,Accept-Encoding,Accept-Language,Host,Referer,Content-Length,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
return 301 https://ankieta.example.com$request_uri;
}
server {
server_name admin.example.com;
listen 443 ssl;
ssl_certificate /srv/ssl/14182263.pem;
ssl_certificate_key /srv/ssl/admin_i_ankieta.example.com.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
location / {
proxy_pass http://connect;
}
}
server {
server_name ankieta.example.com;
listen 443 ssl;
ssl_certificate /srv/ssl/14182263.pem;
ssl_certificate_key /srv/ssl/admin_i_ankieta.example.com.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
root /srv/limesurvey;
index index.php;
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, PATCH, DELETE';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Access-Control-Request-Method,Access-Control-Request-Headers,Cache,Pragma,Authorization,Accept,Accept-Encoding,Accept-Language,Host,Referer,Content-Length,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
client_max_body_size 4M;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ /*.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /srv/limesurvey$fastcgi_script_name;
# fastcgi_param HTTPS $https;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
это - в основном приложение AngularJS и приложение PHP (LimeSurvey), служил под начальством двух различных доменов тем же веб-сервером (Nginx). AngularJS на самом деле обслуживается ConnectJS, который проксируется к Nginx (ConnectJS слушает только на localhost).
В консоли Firefox я получаю это:
Заблокированный Запрос перекрестного источника: Та же политика Источника запрещает чтение удаленного ресурса в https://ankieta.example.com/admin/remotecontrol. Это может быть зафиксировано путем перемещения ресурса в тот же домен или включения CORS.
который, конечно, является раздражающим. Другие браузеры хорошо работают (Chrome, IE).
Какие-либо предложения на этом?
проблема возникла из-за того, что Firefox не авторизовал SSL-сервер API. Доверие к серверу сайта при переходе на конечную точку с помощью Firefox позволило решить проблему временно, а замена cert - навсегда.
Проблемы с заголовками с Firefox и LimeSurvey API удаленного управления можно исправить, проксируя фиксированные значения заголовков, или отправляя капли, согласно https://stackoverflow. com/questions/24465304/trouble-changinging-request-headers-infirefox-with-angularjs