如何使用 jQuery 发出 AJAX HTTPS GET 请求 [英] How to Make an AJAX HTTPS GET Request Using jQuery

查看:82
本文介绍了如何使用 jQuery 发出 AJAX HTTPS GET 请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I explicitly make an AJAX HTTPS GET request using jQuery? I am trying to do the following. On an https page, I have a line with the code $.get("/resource"), but I get the following error

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.

如果相关资源来自 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 无法解析.

Why is the AJAX call trying to access the page using the HTTP protocol if the relative resource is from an https page? If the $.get(url) method does this by default, how do I use jQuery to do an explicit HTTPS GET request? Another person, who had a similar issue, at http://forum.jquery.com/topic/jquery-get-ajax-call-on-http-page-to-https-on-same-domain could not resolve it.

jQuery 版本是 1.7.2

jQuery Version is 1.7.2

推荐答案

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

I fixed the issue. It turned out that due to the way that our Django site was configured, I needed to add a trailing slash to resource in the AJAX request. Without the trailing the slash, Django would then redirect to the URL with the trailing slash using an HTTP request instead of an HTTPS request.

简而言之,我用 $.get("/resource/") 替换了 $.get("/resource").

In short, I replaced $.get("/resource") with $.get("/resource/").

谢谢.我非常感谢您的所有帮助.

Thank you. I really appreciate all of your help.

这篇关于如何使用 jQuery 发出 AJAX HTTPS GET 请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆