Php jqueryajax请求flurry时出错跨源请求被阻止

Php jqueryajax请求flurry时出错跨源请求被阻止,php,jquery,ajax,Php,Jquery,Ajax,我使用FlurryAPI来接收json数据。因此,我必须多次致电flurry url并接收数据。但除了第一个请求外,所有其他请求都会出现此错误 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 我已经为此创造了。在那里你可以看到同样的错误 下面是我用来接收数据的代码 fun

我使用FlurryAPI来接收json数据。因此,我必须多次致电flurry url并接收数据。但除了第一个请求外,所有其他请求都会出现此错误

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
我已经为此创造了。在那里你可以看到同样的错误

下面是我用来接收数据的代码

function($) {
    var url = 'http://api.flurry.com/appMetrics/ActiveUsersByMonth?apiAccessCode=DXGSYSYBSK26BZNSJB2X&apiKey=Removed&startDate=2012-01-01&endDate=2012-12-30&country=LK&versionName=1.0&groupBy=MONTHS';

    $.ajax({
        type: 'GET',
        url: url,
        crossDomain: true,
        dataType: 'json',
        success: function(json) {
            console.dir(json);
            alert();
        },
        error: function(e) {
            console.log(e.message);
        }
    }).done(function(data) {

        var activeUsers = [];

        $.each( data.day, function( i, item ) {
            var arr = $.map(item, function(el) { return el; });
            activeUsers.push(arr[1]);
        });

        var barChartData = {
            labels : ["January","February","March","April","May","June","July","August","September","October","November","December"],
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,0.8)",
                    highlightFill: "rgba(220,220,220,0.75)",
                    highlightStroke: "rgba(220,220,220,1)",
                    data : activeUsers
                }
            ]

        }
        var myChart = new Chart(document.getElementById("canvas").getContext("2d")).Bar(barChartData, {
            responsive : true
        });

    });
})(jQuery);

感谢@humanlove提供的提示。通过这样的尝试,我得到了我想要的。将我的flurry url移动到php并从那里请求服务。然后将结果编码为json。如果没有正确设置标题,则会出现相同的错误

服务器端代码:

header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-With');
header('Access-Control-Allow-Credentials: true');
$url="http://api.flurry.com/appMetrics/ActiveUsersByMonth?apiAccessCode=DXGSYSYBSK26BZNSJB2X&apiKey=Removed&startDate=2012-01-01&endDate=2012-12-30&country=LK&versionName=1.0&groupBy=MONTHS";
$json=file_get_contents($url);
echo $json;
客户端jquery ajax:

$.ajax({
    type: "GET",
    url: "<?php echo base_url("frontpage/monthly_active_count"); ?>"
})
    .done(function( data ) {
        console.log(data);
        var activeUsers = [];

        $.each( data.day, function( i, item ) {
            var arr = $.map(item, function(el) { return el; });
            activeUsers.push(arr[1]);
        });

        var barChartData = {
            labels : ["January","February","March","April","May","June","July","August","September","October","November","December"],
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,0.8)",
                    highlightFill: "rgba(220,220,220,0.75)",
                    highlightStroke: "rgba(220,220,220,1)",
                    data : activeUsers
                }
            ]

        }
        var myChart = new Chart(document.getElementById("canvas").getContext("2d")).Bar(barChartData, {
            responsive : true
        });

    });
$.ajax({
键入:“获取”,
网址:“
})
.完成(功能(数据){
控制台日志(数据);
var activeUsers=[];
$。每个(数据日,功能(i,项目){
var arr=$.map(项,函数(el){return el;});
activeUsers.push(arr[1]);
});
var barChartData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”],
数据集:[
{
填充颜色:“rgba(220220,0.5)”,
strokeColor:“rgba(2200,0.8)”,
高光填充:“rgba(2200,0.75)”,
强光笔划:“rgba(2201)”,
数据:activeUsers
}
]
}
var myChart=新图表(document.getElementById(“canvas”).getContext(“2d”)).Bar(barChartData{
回答:对
});
});

您是否尝试将数据类型:“json”转换为数据类型:“jsonp”,是的。没用。我认为这个毛茸茸的API不支持jsonp,然后使用php请求服务并使用它编码为json。然后你就可以在Javascript中使用ajax访问json了。我没听清楚。你们能不能把样品贴出来。有人遇到过类似的错误并通过了吗?