12

如何通过HTTPS发送 ajax GET请求?

$.get抛出这个:

XMLHttpRequest cannot load https://********. Origin null is not allowed by Access-Control-Allow-Origin. 

是否有另一种方法或一些解决方法可以让这个工作?

如果我使用Chrome导航到 url,我就能得到响应。我看不出它为什么不能通过 ajax 请求工作。

4

2 回答 2

34

如果由于Same Origin Policyhttps的原因,您当前在其中,则无法向页面发出 AJAX 请求。http

主机端口和方案(协议)必须相同才能使 AJAX 请求工作

您可以确保原始页面位于同一主机和方案上,或者在目标域上实施CORS(跨域资源共享)以允许此特定请求。

于 2013-03-13T02:25:46.647 回答
0

[jQuery v. 3.3.1]

我有一个 Web 应用程序,其中所有资源和流量都通过 HTTPS。

然而,我发现由于(Chrome 输出),我无法发送$.ajax()或任何特定$.get的 ,等:$.post

拒绝连接到“ 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/'})无效。

于 2018-02-08T12:50:28.830 回答