如何使用jQuery创建AJAX HTTPS GET请求

Fea*_*ure 20 ajax https jquery get

如何使用jQuery显式发出AJAX HTTPS GET请求?我正在尝试执行以下操作.在https页面上,我有一行代码$.get("/resource"),但是我收到以下错误

XMLHttpRequest cannot load http://www.site.com/resource. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.site.com' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

如果相对资源来自https页面,为什么AJAX调用尝试使用HTTP协议访问页面?如果$ .get(url)方法默认执行此操作,如何使用jQuery执行显式HTTPS GET请求?在http://forum.jquery.com/topic/jquery-get-ajax-call-on-http-page-to-https-on-same-domain上遇到类似问题的另一个人无法解决此问题.

jQuery版本是1.7.2

Fea*_*ure 46

我解决了这个问题.事实证明,由于我们的Django站点的配置方式,我需要在AJAX请求中向资源添加一个尾部斜杠.如果没有斜杠,Django将使用HTTP请求而不是HTTPS请求重定向到带有斜杠的URL.

总之,我换成$.get("/resource")$.get("/resource/").

谢谢.我非常感谢你的帮助.


mit*_*w16 9

如果您所在的页面是https页面,并且页面.get尝试访问的页面是http,则由于相同的来源而无法使用.但是,你可以写出ajax,而不是简单地用.get :)处理它.

$.ajax({
    type: "GET", 
    url: "https://someurl"
});
Run Code Online (Sandbox Code Playgroud)

虽然我认为公平,但仍然缺乏真正的javascript