我如何通过 HTTPS 发送一个 ajax 的 GET 请求?
$.get
抛出以下错误:
XMLHttpRequest cannot load https://********. Origin null is not allowed by Access-Control-Allow-Origin.
有没有其他方式或解决方法可以让它工作?
如果我用 Chrome 访问URL,我能够得到响应。我不明白为什么它不能在 ajax 请求中工作。
我如何通过 HTTPS 发送一个 ajax 的 GET 请求?
$.get
抛出以下错误:
XMLHttpRequest cannot load https://********. Origin null is not allowed by Access-Control-Allow-Origin.
有没有其他方式或解决方法可以让它工作?
如果我用 Chrome 访问URL,我能够得到响应。我不明白为什么它不能在 ajax 请求中工作。
如果当前页面处于http
,则无法向https
页面发起AJAX请求,这是由于同源策略的限制。
AJAX请求只有在主机名、端口号和协议类型(如http或https)完全一致时才能正常工作。
为了允许此类请求,您可以确保原始页面与目标页面位于同一主机和协议上,或者在目标域上实施跨域资源共享(CORS)。
[jQuery v. 3.3.1]
我有一个 Web 应用程序,所有资源和流量都通过 HTTPS 进行。
然而,我发现我无法发送 $.ajax()
或任何特定的 $.get
、$.post
等,因为(Chrome 输出):
拒绝连接到 'http://mywebapp/api/mycall',因为它违反了以下内容安全策略指令:"connect-src 'self'"。
这是由于 HTTPS 页面通过 HTTP 进行 AJAX 请求,我找不到强制使用 HTTPS 的方法。
疯狂的是,解决问题的方法。调用 $.get('/api/mycall/')
输出上述错误,其中在代码中的实际调用中省略了结尾的正斜杠。因此,从错误来看,好像没有正斜杠。
我已经进行了多次调用,每次在被调用的 URL 中有一个结束斜杠时都会失败。同样的调用如果没有结束斜杠则全部成功。
这样调用 $.ajax({ url: '/api/mycall'})
是可以工作的,而 $.ajax({ url: '/api/mycall/'})
则不行。