请求的资源上不存在“Access-Control-Allow-Origin”标头 - 不允许站点

时间:2014-10-10 16:49:25

标签: php jquery ajax wordpress

加载此页面时出现此错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

页面就是这个:http://vieillemethodecorpsneuf.com/confirmation-achat-2/?item=2&cbreceipt=NT5LQ4FE&time=1412942198&cbpop=103E98FF&cbaffi=CELLULITEF&cupsellreceipt=NT5LQ4FE&cname=nathalie+huard&cemail=n-huard@hotmail.com&ccountry=CA&czip=J2J1M9&cbskin=6553&cbfid=14412&cbf=M3XLQ7WEWB

并且完成错误是这样的:

XMLHttpRequest cannot load https://app.getresponse.com/add_contact_webform.html?u=WOoS. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://vieillemethodecorpsneuf.com' is therefore not allowed access.

我们如何解决这个问题?我可以在.htaccess文件中放一些东西来解决吗?

请注意,此页面是在Wordpress OptimizePress插件下构建的,即使有一个模块可以帮助我将代码放入HEAD部分,OP也不允许我使用此模块呈现PHP代码。因此很难将此代码放在标题中:

<?php
header("Access-Control-Allow-Origin: *");

顺便说一下,引用的完整代码是:

<?php
$clickbank_name = (isset($_GET['cname'])) ? $_GET['cname'] : ''; 
$clickbank_email = (isset($_GET['cemail'])) ? $_GET['cemail'] : '';
$clickbank_country = (isset($_GET['ccountry'])) ? $_GET['ccountry'] : '';
?>
<script type="text/javascript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){  
var cname = '<?php echo $clickbank_name; ?>';
var cemail = '<?php echo $clickbank_email; ?>';
var ccountry = '<?php echo $clickbank_country; ?>';
var webform_id = '5068102'; //here your webform id

var dataString = ‘name='+cname+'&email='+cemail+'&custom_country='+ccountry+'&webform_id='+webform_id;
$.ajax({
  type: "POST",
  url: "https://app.getresponse.com/add_contact_webform.html?u=WOoS",
  data: dataString
});
});
</script>

2 个答案:

答案 0 :(得分:0)

如果你用jquery打电话,你应该使用&#34; crossDomain:true&#34;

例如:

$.ajax({    
    type: "GET",
    crossDomain:true,
    url: "http://api.pinterest.com/v1/urls/count.json",
    dataType: "jsonp",
    success: function(e) {
    }
});

答案 1 :(得分:0)

如果您无法访问服务器上的推送代码,并且您正在将服务器作为客户端(来自前端)进行ping操作,则很难解决此错误。在我看来,最简单的方法是使用JSONP或运行您自己的服务器前端服务器,并ping您尝试访问的远程服务器。

这也可能有所帮助:So, JSONP or CORS?