This morning, upon upgrading my Firefox browser to the latest version (from 22 to 23), some of the key aspects of my back office (website) stopped working.
Looking at the Firebug log, the following errors were being reported:
Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`
among other errors caused by the latter of the two above not being loaded.
What does the above mean and how do I resolve it?
I found if you have issues with including or mixing your page with something like http://www.example.com, you can fix that by putting //www.example.com instead
@Blender Comment is the best approach. Never hard code the protocol anywhere in the code as it will be difficult to change if you move from
http
tohttps
. Since you need to manually edit and update all the files.This is always better as it automatically detect the protocol.
I found this blog post which cleared up a few things. To quote the most relevant bit:
The resolution, in my case, was to simply ensure the
jquery
includes were as follows (note the removal of the protocol):Note that the temporary 'fix' is to click on the 'shield' icon in the top-left corner of the address bar and select 'Disable Protection on This Page', although this is not recommended for obvious reasons.
UPDATE: This link from the Firefox (Mozilla) support pages is also useful in explaining what constitutes mixed content and, as given in the above paragraph, does actually provide details of how to display the page regardless:
I had this same problem because I bought a CSS template and it grabbed a javascript an external javascript file through
http://whatever.js.com/javascript.js
. I went to that page in my browser and then changed it tohttps://whatever...
using SSL and it worked, so in my HTML javascript tag I just changed the URL to usehttps
instead ofhttp
and it worked.If you are consuming an internal service via AJAX, make sure the url points to https, this cleared up the error for me.
Initial AJAX URL: "http://XXXXXX.com/Core.svc/" + ApiName
Corrected AJAX URL: "https://XXXXXX.com/Core.svc/" + ApiName,
To force redirect on https protocol, you can also add this directive in .htaccess on root folder