我正在旅游网站上工作。在该网站中是一个页面,我将Ajax调用到另一个页面。该应用程序是在vuejs框架中创建的。当我打电话时,Firefox说我在不安全的连接上进行AJAX调用。然后它继续重定向整个页面而不是进行AJAX调用。我的POST数据都没有保留在重定向中。整个过程发生在使用SSL的端到端网站安全上。
甚至JS也包含在HTTPS URL中,并且不需要考虑跨源脚本。 Firefox还确认没有页面元素不安全。这个问题只困扰网站的公交车预订模块,而不是其他模块,如航班预订或酒店预订使用完全相同的脚本。我想知道什么可能触发这个问题。
错误信息:
用于访问此资源的连接不安全。
截图:
部署细节:
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/$1 [R=301,L]
事实证明我的问题在于我的JavaScript。虽然我的应用程序最初是在Vuejs中创建的,但它位于包含其他脚本的页面上。其他一些脚本存在问题,而这又破坏了Vuejs的功能。在我的情况下,jQuery错误阻止了我的脚本的正确执行。一旦我解决了原始的jQuery错误,重定向就停止了,ajax正常工作。
总之,即使您的代码可能在另一个框架中,也要检查其他脚本是否正在暂停执行。