为什么这个JSONP调用失败了?

时间:2012-03-16 19:51:15

标签: javascript json jquery

关于我遇到的问题与工作示例链接: http://jsfiddle.net/dSJCq/3/

function populateJobsList (jobLocation) {
    if (jobLocation == ""){
        jobLocation = 'Spain';
    }

    var provinceArray = jobLocation.split(',');
    console.log(provinceArray , jobLocation);
    var province = provinceArray[0];
    var url_jobs = "http://api.indeed.com/ads/apisearch?publisher=5656845852938153&v=2&format=json&callback=?&q=&l=Madrid&sort=relevance&radius=25&st=jobsite&jt=fulltime&start=0&limit=4&fromage=10&filter=1&latlong=1&co=es";

    $.getJSON(url_jobs, getJSONData);
}


function getJSONData(data) {
        console.log(data)
        $.each(data.results, function(i,item){
            i++;

        $("#titleJob"+i).html(item.jobtitle.substr(0,43));

        if (item.city){
            $("#locationJob"+i).html(item.city);
        }
        else {
            $("#locationJob"+i).html('N/A');
        }

        $("#companyJob"+i).html(item.company.substr(0,43));
    });
}

当我试图从Indeed中检索信息时,我似乎不明白为什么这个JSON调用失败了。在我的开发环境中,当我从http://localhost:8080/运行完全相同的代码时,代码运行正常,并且能够从Indeed获得结果JSON。但是,当我从另一台服务器运行代码时,例如我的生产服务器(或JS小提琴),我在$ .getJSON调用上得到一个错误堆栈。单击测试按钮时,可以在JS小提琴的控制台中查看此错误。

调用正在使用JSONP,我的理解是,由于调用的性质,它应该允许不同的访问源。我也知道,Indeed支持JSONP,因为当你直接访问这个链接时,它会返回一个带回调函数的JSON对象:

http://api.indeed.com/ads/apisearch?publisher=5656845852938153&v=2&format=json&callback=jQuery1710167889759875834_1331926740707&q=&l=Madrid&sort=relevance&radius=25&st=jobsite&jt=fulltime&start=0&limit=4&fromage=10&fil

我完全不知道为什么这段代码适用于一个环境而不是另一个环境?

0 个答案:

没有答案