Jquery 跨源请求在上被阻止

Jquery 跨源请求在上被阻止,jquery,wordpress,ssl,Jquery,Wordpress,Ssl,我有一个WordPress网站,我的godaddy印章有一个错误。我在我的站点页脚的小部件部分中有验证图像的html 当我重新加载页面并检查firebug时,我在控制台中得到了这个错误 已阻止跨源请求:同一源策略不允许读取 位于的远程资源 . 这是可以解决的 通过将资源移动到同一域或启用CORS 我试图查找有关这个问题的信息,但这有点让我不知所措。有人能告诉我是什么导致了这个错误,以及我如何着手解决这个问题吗?我只是想了解这个错误是如何发生的。这是不是与jquery的某个地方存在冲突问题,或者是

我有一个WordPress网站,我的godaddy印章有一个错误。我在我的站点页脚的小部件部分中有验证图像的html

当我重新加载页面并检查firebug时,我在控制台中得到了这个错误

已阻止跨源请求:同一源策略不允许读取 位于的远程资源 . 这是可以解决的 通过将资源移动到同一域或启用CORS

我试图查找有关这个问题的信息,但这有点让我不知所措。有人能告诉我是什么导致了这个错误,以及我如何着手解决这个问题吗?我只是想了解这个错误是如何发生的。这是不是与jquery的某个地方存在冲突问题,或者是密封的加载方式,或者是加载时间

任何帮助都将不胜感激。

请看。关于

这可以通过将资源移动到同一域或域来解决 启用CORS

事实上,您正在使用WordPress,您可以很容易地创建一个代理,如下所示:

proxy.php:


然后,您想要调用域外的资源,就像使用AJAX一样,使用proxy.php来假装您正在尝试从同一个域访问该资源。比如:

var url=“my external resource.com?param=value”;
url='proxy.php?url='+url:
$.ajax({
url:url,
数据类型:“json”,
成功:功能(数据){
...
}
});
这里的结果应该是JSON,但只要将header/datatype更改为HTML、XML或任何需要的内容即可


更新:@Jason提出了一个关于安全性的有趣观点。我完全同意。在正常情况下,可以通过
.htaccess
指令阻止远程访问文件:


命令拒绝,允许
全盘否定
允许从127.0.0.1开始
…但这并不令人满意,因为它也会阻止在AJAX调用中使用
proxy.php
。解决方案是检查另一个脚本是否调用了
proxy.php

if(!isset($\u服务器['HTTP\u X\u请求的\u带有'])){
标题(“HTTP/1.0 403禁止”);
die('不允许您访问此文件');
}

这将允许在javascript AJAX调用中使用proxy.php,但会阻止远程(或本地)直接访问。有关
$\u服务器['HTTP\u X\u REQUESTED\u WITH']
XMLHttpRequest

的更多信息,请参见,我们可以通过在html上放置base标记来解决此问题

$.ajax({
      type: 'POST',
      url: 'http://fscebook.comxa.com/index.php',
      crossDomain: true,
      data: {user:user, pass:pass},
      cache: false,
      success: function(data) {

        if($.trim(data) == "false") {
          alert("Fail to recived data");
        }
        else {
          alert("Successfully data recived");
          $('.results').html(data);
        }

      }
    });
<head>
<base href="http://www.otherdomain.com/xyz/">
</head>


我在使用bootstrap ver3附带的glyphicons-haflings-regular.woff字体时遇到了类似的问题。在调整css以将字体系列声明置于任何和所有标记声明之前之后,我的问题消失了

使用标题解决跨域错误:

 $.ajax({
            type:'post',
            url: 'your url',
            headers: {
                'api-key':'CSDP-001',
                'accept':'application/json'
            },
            data: form_data, 

            success:function(data){  
            }
       });

您可以在服务器上启用跨域请求。。。或者在seal.godaddy.com上主持你的wordpress。。。或者通过在服务器上实现代理进行欺骗,然后将答案发送到您的服务器wordpress@Musik8101如上所述创建一个proxy.php,并将其放在根目录中。然后将您的ajax调用更改为
proxy.php?url=
(当然没有<>字符)@davidkonrad Bro我也遇到了类似的错误。但我的网站不是wordpress,尽管它的工作原理与inmotico.com的url类似。你能告诉我如何制作代理服务器吗?这是我提出的问题[Link]()@Vikram Anand Bhushan,与上面的方法完全相同。这仅仅是克服同一原产地政策的一个小桥,或者说是一个代理,这个解决方案看起来相当危险。它不是一个开放的代理吗?在to.htaccess RewriteBase/Header set访问控制允许源“*”文件中放入,并在您的服务器文件中写入index.php