【发布时间】:2016-07-27 00:16:19
【问题描述】:
伙计们...我已经尝试了很多来解决这个问题,在这里和其他站点中找到了一些解决方案...但是我没有找到解决这个问题的方法!
那么真正的问题是什么.. 很简单,我有这个代码:
function refreshRadioStats()
{
jQuery.support.cors = true;
$.get('http://raphaleao.com/json', function(data){
var templateStats = '<span class="glyphicon glyphicon-music"></span> '+ j_lang[0] +
'<marquee><h4><i>'+data.musica_atual+'</i></h4></marquee><br>'+
'<span class="glyphicon glyphicon-headphones"></span> '+j_lang[1]+': <b>'+data.ouvintes_conectados+
'</b><br>'+
'<span class="glyphicon glyphicon-user"></span> '+j_lang[3]+': <b>'+locutor+'</b><br><br>'+
'<button type="button" class="btn btn-info" id="refreshstadistics" style="width:100%"><span class="glyphicon glyphicon-refresh"></span> '+ j_lang[2] +'</button>';
$('#resultse').append(templateStats);
},'json');
}
好的,有什么问题吗? 问题是:脚本显然无法访问网站 http://raphaleao.com/json 并且为此不起作用。 问题:
XMLHttpRequest 无法加载 http://raphaleao.com/json。 “Access-Control-Allow-Origin”标头包含多个值“*、*”,但只允许一个值。 Origin 'Stack don't allow me post more than 2 links' 因此不允许访问。
该脚本有效,因为我已经在 JSON 中与其他站点进行了测试并且可以完美运行。我已经把它放在 web.config 中了:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
同样的问题,你们能帮我解决这个问题吗?
我已经解决了 好吧,在尝试了一些事情之后,@mattferderer 打开了我的思路,我弄清楚了这一切是怎么回事......
首先我删除了 web.config 端,只留下 header() 函数。好的,第一个问题已解决(大声笑);
而且,我已经弄清楚为什么 $.getJSON() 不加载其他网站的信息...很简单,只需添加(至少我在 PHP)这个:
header('Content-Type: text/javascript');
在我的例子中,页面的格式是 text/html,所以 $.getJSON() 将无法加载该页面中的所有信息!
谢谢大家,对糟糕的英语感到抱歉!
【问题讨论】:
-
你的后端是什么?您一定是在某处错误地设置了访问控制来源,或者它合并了两个不同 web.configs 中的值。
-
目标服务器必须提供
Access-Control-Allow-Origin标头。如果没有,您将无法从浏览器访问内容。 -
你是什么意思@Jack?因为我是这个世界的新人,对不起:(
-
是的@Pointy,我已经在 json.php 上放了一个标题,但同样的问题......
标签: javascript json cross-domain