![](/img/trans.png)
[英]XMLHttpRequest cannot load . . . No 'Access-Control-Allow-Origin' header is present on the requested resource.
[英]XMLHttpRequest cannot load “ …No 'Access-Control-Allow-Origin' header is present on the requested resource.” — Jquery
我最近对此请求有疑问。令我最困惑的是,直到将其部署到我的机器上,该问题才会在localhost上发生。 然后,我不得不改变我的代码,以支持跨域请求,如建议在这里 。
在此之前
$.get('//js.mysite.com/javascript.php', options, function(xml) {
$(xml).find('item').each(function(idx) {
.....
},
'xml'
);
现在我改为
$.ajax({
type : 'GET',
url : '//js.mysite.com/javascript.php/',
data : options,
dataType : 'xml',
success : function(xml) {
.....
},
jsonp: 'jsonp'
});
两者都可以在我的本地计算机上正常工作。 但是他们在我的开发机器上失败了。 当我在开发浏览器上通过网络检查并检查请求标头时,我意识到托管站点上的请求URL将返回为
Request Url https://js.mysite.com/javascript.php?prefix=prefix&media=2&campaign=15&mode=txt
和我的本地机器
Requst Url http://js.mysite.com/javascript.php?prefix=prefix&media=2&campaign=15&mode=txt
当我从托管站点返回的链接将https更改为http时,它可以正常工作。 我的问题是https来自哪里? 考虑到它在托管站点上返回https和在本地上返回http,我如何更改代码以支持此类更改。 托管站点返回404错误,错误消息xmlhttprequest cannot load no 'access-control-allow-origin' header is present on the requested
。
任何帮助,建议或更好的解释将不胜感激。
HTTPS
来自提供网页的任何协议。 即,如果您的远程服务器正在强制进行SSL连接,它将使用HTTPS
。
这是因为//
你的url : '//js.mysite.com/javascript.php/',
告诉你的客户端使用当前发出请求的网页的协议。
编辑:我的猜测是您的远程服务器不支持HTTPS请求。 您可以启用SSL,或仅在应用程序上使用HTTP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.