【发布时间】:2017-01-29 22:05:37
【问题描述】:
我有一个正在运行的 wordpress 站点,它设置为使用 HTTPS,在 wordpress 站点中,我有一个使用 Slim 框架的主题中的小部件。在 HTTP 上运行时,它运行良好,但使用 HTTPS 时,我确实收到 404 错误。 ajax 调用是从浏览器发起的,请求源在同一个域中。
浏览器日志显示:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://xxxxxxxx.xxx' 不允许访问。响应的 HTTP 状态代码为 404。
在应用程序内仅使用相对路径。在 html 源代码中,我看到了一些对图像等的 HTTP 请求,但它并没有抱怨它们
【问题讨论】:
-
如果网站是通过 HTTPS 传送的,许多浏览器会故意阻止通过 HTTP 的 JavaScript(以及 AJAX)请求。您可以通过确保 JavaScript 请求也使用 HTTPS 来解决此问题。
-
我现在在 javascript 文件中添加了 https://,但仍然收到以下错误:混合内容:'xxxxxxx/'的页面;已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“xxxxxxxx/wp-content/themes/xxxxxxxx/xxxxxxx/lastupdate”;。此请求已被阻止;内容必须通过 HTTPS 提供。在我的 javascript 中,我有: function getStarted() { request = $.ajax({ type: GET, url: HTTPS://xxxxxxx/xxxx/xxxx/xxxx/xxxx/xxxx, data: {}, dataType: json })
-
将所有内容更改回非 https 后,我得到一个 404(未找到),但是在开发机器上它正在工作,并且也在互联网上的测试服务器上。 Bsically 它没有找到 index.php 中描述的路线,如 Slim 的学生入门应用程序。是否与已安装 WP-JSON 插件有关?我确实看到测试和生产环境之间的标头有一些变化(链接xxxxxxxxx/wp-json/>:rel=HTTPS://api.w.org)