我想创建一个JS文件,其他人可以在他们的网站上包括这些文件,以便他们可以使用类似于facebook like按钮的API来引用访问我的数据库的功能,该按钮显示喜欢的总人数以及喜欢该页面的朋友中的谁。作为测试的一部分,我一直在做以下事情: JS文件
function getItemRating(id){
var result = "";
$.ajax({
type: "POST",
url: "http://siteurl.com/api/rating.php",
data: {i : id},
dataType: "json",
async: false,
success: function(data) { // callback for successful completion
result = data;
},
error: function() { // callback if there's an error
result = 'error';
}
});
return result;
}
参考文件包括:
header("Access-Control-Allow-Origin: *");
,在另一台服务器上,我尝试了几种方法,包括:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="www.siteurl.com/api/rating-file.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var result = getItemRating(1);
console.log(result);
});
</script>
</head>
<body></body>
</html>
但是目前我在控制台中遇到错误:
VM133:1已从CORS策略阻止从源“ http://siteurl.com/api/rating.php”访问“ http://otherurl.com”处的XMLHttpRequest:对预检请求的响应未通过访问控制检查:否“访问控制” -Allow-Origin标头出现在请求的资源上。
siteurl.com =我的js文件(带有功能)所在的服务器 otherurl.com =包含js的html所在的其他服务器
答案 0 :(得分:0)
错误消息告诉您问题出在对预检请求的响应上,但是您不应该首先触发一个。
删除:
contentType: "application/json; charset=utf-8",
因为: