我为注册使用的站点的顶级站点做了“投票”API。XMLHttpRequest跨域抛出错误
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var id = 1;
$(document).ready(function(){
$.getJSON("http://mysite.com/index.php?page=vote", { id: id, hasVoted: 'unknown' }, function(data) {
if(data == 2) {
window.location.replace("http://mysite.com/index.php?page=vote&id=" + id);
}
});
});
</script>
基本上,我给用户的ID,然后他们把这些代码放在他们的文件中。 该网站返回一个数字,然后重定向用户或不进行投票。
因此,在本地主机上的代码测试引发此错误:
XMLHttpRequest cannot load http://mysite.com/index.php?page=vote&id=1&hasVoted=unknown. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
如果我用这个代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var id = 1;
$(document).ready(function(){
$.getJSON("http://mysite.com/index.php?page=vote&callback=?", { id: id, hasVoted: 'unknown' }, function(data) {
if(data == 2) {
window.location.replace("http://mysite.com/index.php?page=vote&id=" + id);
}
});
});
</script>
然后,它什么都不做。它不会引发错误。 (虽然数据应该等于2(当直接检查URL时,它返回2))。
而且,如果我尝试做一点测试,并且做alert(data);
它什么都不会抛出。
对此我完全无能为力。任何事情都会有帮助。
JSONP并不神奇。如果远程URL支持,您只能使用JSONP。 – SLaks 2012-03-19 05:02:43
编辑的问题,因为我找到了我遇到的其他问题。 – 2012-03-19 05:15:19
@SLaks远程URL如何支持它?编辑:得到它的工作,无论如何。 – 2012-03-19 05:17:55