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.

截图:

部署详情:

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 正常工作。

总而言之,即使您的代码可能在另一个框架中,检查其他脚本是否正在停止您的执行是个好主意。