我知道有些东西是通过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'是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点' http://www.example.com/MyService.asmx?param=paramValue'。此请求已被阻止;内容必须通过HTTPS提供。
有什么建议吗?
答案 0 :(得分:0)
有几件事可能会触发此错误。
首先,将构建您网址的javascript更改为
window.location.href.substring(0, location.href.lastIndexOf("/") + 1) + 'MyService.asmx/MyMethod'
(在MyService.asmx之前删除斜杠,在结尾处删除分号)
尝试使用console.log()此代码生成的URL,并尝试在浏览器中通过HTTPS访问它。可能发生的情况是,如果网址无法访问,则可能会重定向到非https网址。您还可以使用浏览器调试工具(如chrome inspect Network选项卡)查看您的请求发生了什么(查找状态代码,检查响应标头等)。