Firefox:安全页面上的不安全 ajax 次调用
Firefox: unsecured ajax calls on secure page
我在旅游网站上工作。在该网站中有一个页面,我在其中对另一个页面进行 Ajax 调用。该应用程序是在 vuejs 框架中创建的。当我打电话时,Firefox 说我正在使用不安全的连接进行 AJAX 调用。然后它继续重定向整个页面而不是进行 AJAX 调用。我的 POST 数据中的 None 保留在重定向中。整个过程发生在使用 SSL 端到端保护的网站上。
甚至 JS 都包含在 HTTPS URL 中,无需担心跨源脚本。 Firefox 还确认页面中没有任何元素是不安全的。这个问题只困扰网站的巴士预订模块,而不是其他模块,例如使用完全相同脚本的航班预订或酒店预订。我想知道是什么触发了这个问题。
错误信息:
The connection used to access this resource was not secure.
截图:
部署详情:
- 后端: Codeigniter 2.1.6 (PHP)
- Web 服务器: Apache 2
- 服务器:亚马逊EC2
Apache 站点配置文件:
<VirtualHost *:80>
ServerName mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite/
ErrorLog ${APACHE_LOG_DIR}/stg_error.log
CustomLog ${APACHE_LOG_DIR}/stg_access.log combined
<Directory “/var/www/html/mysite”>
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}[END,NE,R=permanent]
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite/
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory “/var/www/html/mysite">
AllowOverride All
</Directory>
BrowserMatch "MSIE [2-6]"nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]"ssl-unclean-shutdown
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem
</VirtualHost>
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
事实证明我的问题出在 JavaScript 上。虽然我的应用程序最初是在 Vuejs 中创建的,但它与其他脚本位于一个页面上。其他一些脚本存在问题,进而破坏了 Vuejs 的功能。在我的例子中,jQuery 错误阻止了我的脚本的正确执行。一旦我解决了最初的 jQuery 错误,重定向就停止了并且 ajax 正常工作。
总而言之,即使您的代码可能在另一个框架中,检查其他脚本是否正在停止您的执行是个好主意。
我在旅游网站上工作。在该网站中有一个页面,我在其中对另一个页面进行 Ajax 调用。该应用程序是在 vuejs 框架中创建的。当我打电话时,Firefox 说我正在使用不安全的连接进行 AJAX 调用。然后它继续重定向整个页面而不是进行 AJAX 调用。我的 POST 数据中的 None 保留在重定向中。整个过程发生在使用 SSL 端到端保护的网站上。
甚至 JS 都包含在 HTTPS URL 中,无需担心跨源脚本。 Firefox 还确认页面中没有任何元素是不安全的。这个问题只困扰网站的巴士预订模块,而不是其他模块,例如使用完全相同脚本的航班预订或酒店预订。我想知道是什么触发了这个问题。
错误信息:
The connection used to access this resource was not secure.
截图:
部署详情:
- 后端: Codeigniter 2.1.6 (PHP)
- Web 服务器: Apache 2
- 服务器:亚马逊EC2
Apache 站点配置文件:
<VirtualHost *:80>
ServerName mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite/
ErrorLog ${APACHE_LOG_DIR}/stg_error.log
CustomLog ${APACHE_LOG_DIR}/stg_access.log combined
<Directory “/var/www/html/mysite”>
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}[END,NE,R=permanent]
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite/
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory “/var/www/html/mysite">
AllowOverride All
</Directory>
BrowserMatch "MSIE [2-6]"nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]"ssl-unclean-shutdown
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem
</VirtualHost>
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
事实证明我的问题出在 JavaScript 上。虽然我的应用程序最初是在 Vuejs 中创建的,但它与其他脚本位于一个页面上。其他一些脚本存在问题,进而破坏了 Vuejs 的功能。在我的例子中,jQuery 错误阻止了我的脚本的正确执行。一旦我解决了最初的 jQuery 错误,重定向就停止了并且 ajax 正常工作。
总而言之,即使您的代码可能在另一个框架中,检查其他脚本是否正在停止您的执行是个好主意。