https 上的混合内容,因为不安全的 XMLHttpRequest 请求
Mixed-Content over https because an insecure XMLHttpRequest request
我知道有些东西是通过 http 而不是 https 调用的,但实际上我不知道如何解决这个问题!
$.ajax({
type: "GET",
url: window.location.href.substring(0, location.href.lastIndexOf("/") + 1) + '/MyService.asmx/MyMethod';,
data: 'param=' + JSON.stringify({ "myParam": value.trim() });,
dataType: "text",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
}, ...
我什至试过这种方法但没有成功:
Url: '//MyService.asmx/MyMethod';
给出的错误是:
混合内容:位于“https://www.example.com/MyPage.aspx' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://www.example.com/MyService.asmx?param=paramValue”的页面。此请求已被阻止;内容必须通过 HTTPS 提供。
有什么建议吗?
有几种情况可能会触发此错误。
首先,将构成您的 url 的 javascript 更改为
window.location.href.substring(0, location.href.lastIndexOf("/") + 1) + 'MyService.asmx/MyMethod'
(去掉MyService.asmx前的斜杠和末尾的分号)
尝试 console.log() url 此代码生成并尝试在您的浏览器中是否可以通过 HTTPS 访问它。可能发生的情况是,如果无法访问 url,则可能会重定向到 non-https url。您还可以使用浏览器调试工具(例如 chrome 检查网络选项卡)来查看您的请求发生了什么(查找状态代码,检查响应 headers 等)。
我知道有些东西是通过 http 而不是 https 调用的,但实际上我不知道如何解决这个问题!
$.ajax({
type: "GET",
url: window.location.href.substring(0, location.href.lastIndexOf("/") + 1) + '/MyService.asmx/MyMethod';,
data: 'param=' + JSON.stringify({ "myParam": value.trim() });,
dataType: "text",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
}, ...
我什至试过这种方法但没有成功:
Url: '//MyService.asmx/MyMethod';
给出的错误是: 混合内容:位于“https://www.example.com/MyPage.aspx' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://www.example.com/MyService.asmx?param=paramValue”的页面。此请求已被阻止;内容必须通过 HTTPS 提供。
有什么建议吗?
有几种情况可能会触发此错误。
首先,将构成您的 url 的 javascript 更改为
window.location.href.substring(0, location.href.lastIndexOf("/") + 1) + 'MyService.asmx/MyMethod'
(去掉MyService.asmx前的斜杠和末尾的分号)
尝试 console.log() url 此代码生成并尝试在您的浏览器中是否可以通过 HTTPS 访问它。可能发生的情况是,如果无法访问 url,则可能会重定向到 non-https url。您还可以使用浏览器调试工具(例如 chrome 检查网络选项卡)来查看您的请求发生了什么(查找状态代码,检查响应 headers 等)。