https和http页面之间的跨域问题。Ajax调用失败

https和http页面之间的跨域问题。Ajax调用失败,ajax,jquery-mobile,cross-domain,Ajax,Jquery Mobile,Cross Domain,我有一个网站叫xyz.com。我想从say打一个ajax电话(http://pqr.xyz.com)对。但由于跨域问题,调用无法执行。有没有办法克服这个问题。xan i如何通过https访问页面。如果要进行跨域呼叫,需要使用 这意味着您可以更改服务器代码,以便标题显示此跨域调用已被授权。根据您的服务器语言,您必须执行以下操作: w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Req

我有一个网站叫xyz.com。我想从say打一个ajax电话(http://pqr.xyz.com)对。但由于跨域问题,调用无法执行。有没有办法克服这个问题。xan i如何通过https访问页面。

如果要进行跨域呼叫,需要使用

这意味着您可以更改服务器代码,以便标题显示此跨域调用已被授权。根据您的服务器语言,您必须执行以下操作:

w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Request-Method", "GET")
w.Header().Set("content-type", "application/x-javascript") // this one of course for json calls
例如,使用JSONP而不是JSON还意味着您将在函数调用中包含JSON

acceptServerAnswer({'thisis':'myjson'])

使用服务器端代理或JSON


0否决投票接受,但我的问题是我使用相同的域。只有子域是不同的。协议一个是http,另一个是https。我是否必须为每个子域安装单独的证书。当您使用不同的端口(http为80,https为443)时,您是在浏览器眼中进行“跨域”操作。证书问题没有任何联系,只是浏览器不接受从一个端口到另一个端口的常规ajax/json请求(即使使用相同的域和相同的协议),所以您必须使用代理或使用另一个系统进行转发(JSONP很可能是最理想的解决方案)。获得了解决方案。将标头集访问控制允许源代码*添加到服务器根目录中的.htaccess文件。