如何通过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 请求上工作。
你不能让一个Ajax请求的https,如果你是在当前页面http,因为的同源策略。
的主机,端口和方案(协议)必须在为了使AJAX请求工作是相同的。
您可以确保原始页面位于同一主机和方案上,或者在目标域上实施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/')输出上述错误“拒绝连接到‘ http://mywebapp/api/mycall ’”,在代码的实际调用中省略了结尾的正斜杠。因此,从错误看来,好像没有正斜杠。
我已经进行了多次调用,当被调用的 url 中有一个结束斜杠时,每个调用都失败了。同样的人都成功了,没有之一。
所以调用$.ajax({ url: '/api/mycall'})有效,而 $.ajax({ url: '/api/mycall/'})没有。