加载此页面时出现此错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
页面如下:http://vieillemethodecorpsneuf.com/confirmation-achat-2/?item=2&cbrecept=NT5LQ4FE&时间=1412942198&cbpop=103E98FF&cbaffi=CELLULITEF&cupsellreceive=NT5LQ4FE&cname=nathalie+huard&电子邮件=n-huard@hotmail.com&accountry=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>
如果使用jquery调用,则应使用"crossDomain:true"
例如:
$.ajax({
type: "GET",
crossDomain:true,
url: "http://api.pinterest.com/v1/urls/count.json",
dataType: "jsonp",
success: function(e) {
}
});
如果您没有访问服务器上的推送代码的权限,并且您将服务器作为客户端(从前端)ping,则很难避免此错误。在我看来,最简单的方法是使用JSONP或运行您自己的服务器,该服务器为前端服务,并对您试图访问的远程服务器进行ping。
这可能也有帮助:那么,JSONP还是CORS?