JSON跨域错误

时间:2016-04-06 14:13:44

标签: javascript json cross-domain

好吧......我已经尝试过很多方法来解决这个问题,在这里和其他网站上找到一些解决方案......但我不能解决这个问题!

真正的问题是什么......很简单我有这个代码:

    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。 &#39; Access-Control-Allow-Origin&#39;标头包含多个值&#39; *,*&#39;,但只允许一个。起源&#39; Stack不允许我发布超过2个链接&#39;因此不允许访问。

该脚本有效,因为我已经使用 JSON 中的其他网站进行了测试,并且运行良好。我已经把它放在 web.config

中了
<httpProtocol>
       <customHeaders>
         <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
 </httpProtocol>

同样的问题,你们可以帮助我吗?

我已经得到了修复 好吧,在尝试了一些事情并且@mattferderer打开了我的脑海之后,我想出了所有这些......&/ p>

首先,我已删除 web.config 一侧,只保留 header()功能。好的第一个问题已解决(lol);

而且,我已经弄明白为什么 $。getJSON()没有加载其他网站的信息...这很简单,只需添加(至少我在 PHP 中做到了这一点:

header('Content-Type: text/javascript');

在我的情况下,页面的格式为 text / html ,因此 $。getJSON()将无法加载该页面中的所有信息!

谢谢你们,为可怕的英语感到抱歉!

1 个答案:

答案 0 :(得分:1)

尝试从web.config中删除access-control-allow-origin,因为问题是access-control-allow-origin被使用了两次。如果你查看你的响应标题,它会显示:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.5.11
Access-Control-Allow-Origin: *
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Date: Wed, 06 Apr 2016 14:43:54 GMT
Content-Length: 387