我正在尝试使用HTTP网址从使用HTTPS加载到不同域的页面使用XmlHTTPRequest POST。 HTTP服务器是本地(在家中)服务器,因此它不能是HTTPS。 (这是一个原型/演示 - 家庭HTTP服务器可能会在机顶盒中)。我的服务器返回:
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS'
发布时,浏览器似乎已取消请求。我在控制台中看到了这个警告:
'https://xxx.html'
上的页面是通过HTTPS加载的,但显示的是来自'http://localhost:10293/yyy'
的不安全内容:此内容也应通过HTTPS加载。
有没有办法让这项工作?
关于这一点非常有趣的是我可以向HTTP服务器发送DELETE,它可以工作,而不是POST! (服务器处理' OPTION'请求,并返回上面的' Access'标头.DELETE也会导致警告吐出,但发送请求,不像POST,其中该请求已被浏览器取消。
服务器是基本的node.js服务器。
答案 0 :(得分:0)
我能够通过处理HTTP服务器中的OPTIONS请求来完成这项工作:
response.writeHead(200, {
'Content-Type': 'text/html',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS'
});
response.end();
只有POST失败的问题是一个红色的鲱鱼 - 我现在忘记了确切的情况,我上面的评论在POST之后立即说了一些关于setTimeout的事情。不确定,但它现在正在运作。