Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery CORS错误-Ajax请求使用NYTimes API返回间歇性故障_Jquery_Ajax_Cors_Asp.net Web Api - Fatal编程技术网

Jquery CORS错误-Ajax请求使用NYTimes API返回间歇性故障

Jquery CORS错误-Ajax请求使用NYTimes API返回间歇性故障,jquery,ajax,cors,asp.net-web-api,Jquery,Ajax,Cors,Asp.net Web Api,我在迭代一系列地区(1到5个)的同时,向提出了几个ajax请求。我平均只能成功返回2个请求,其余请求返回一个: XMLHttpRequest无法加载https://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/house/OR/2/current.json?api-key=xxxxxxx。 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://localhost:90

我在迭代一系列地区(1到5个)的同时,向提出了几个ajax请求。我平均只能成功返回2个请求,其余请求返回一个:

XMLHttpRequest无法加载https://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/house/OR/2/current.json?api-key=xxxxxxx。
请求的资源上不存在“Access Control Allow Origin”标头。起源'http://localhost:9001因此,不允许访问。

这些失败似乎没有规律可循。即使多次使用同一个
\u区
号码,似乎也是随机失败的

我的代码:

var title_element,
    title_render,
    district_numbers = ['1', '2', '3', '4', '5'],
    element_ids = ['ushd1', 'ushd2', 'ushd3', 'ushd4', 'ushd5'],
    apiKey = 'api-key=xxxxxxxxxxx',
    baseUrl = 'https://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/house/OR/',
    orUsHouseMembers,
    frag;

  for (var i = 0, total_districts = district_numbers.length; i < total_districts; i++) {
      (function (i) {
        var myUrl = baseUrl + district_numbers[i] + '/current.json?' + apiKey;

        $.ajax({
          url: myUrl,
          dataType: 'json',

          success: function (data) {
            console.log('\nSUCCESS: ' + myUrl);
            title_element = document.getElementById(element_ids[i]);        
            title_render = document.createTextNode(data.results[0].name + ' - District ' + data.results[0].district );
            title_element.appendChild(title_render);
          },

          error: function (data) {
            console.log('\nFAIL: ' + myUrl);
          }
        })
      })(i);
  }
var title\u元素,
标题(u render),
地区编号=['1','2','3','4','5'],
元素_id=['ushd1','ushd2','ushd3','ushd4','ushd5'],
apiKey='api key=XXXXXXXXXX',
baseUrl=https://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/house/OR/',
各位委员:,
弗拉格;
对于(变量i=0,总分区数=分区数.length;i<总分区数;i++){
(职能(一){
var myUrl=baseUrl+district_number[i]+'/current.json?'+apiKey;
$.ajax({
url:myUrl,
数据类型:“json”,
成功:功能(数据){
console.log('\n成功:'+myUrl);
title_element=document.getElementById(element_id[i]);
title_render=document.createTextNode(data.results[0].name+'-District'+data.results[0].District);
title\u元素。appendChild(title\u呈现);
},
错误:函数(数据){
console.log('\n邮件:'+myUrl);
}
})
})(i) );
}
我尝试添加
访问控制允许源代码:'*'
和所有常见的CORS内容,但我不认为这是一个真正的CORS问题,因为故障太间歇性了

我的代码有什么问题吗?或者API有什么问题吗

我的代码有什么问题吗?或者API有什么问题吗

是的,将AJAX的
dataType
选项更改为
jsonp
,而不是
json

dataType: 'jsonp'
为避免仅想要
获取数据时出现问题,请使用


p.S:


请注意,我自己用JSFIDLE制作的一个小程序对它进行了测试,它工作正常,请考虑它现在返回
403(禁止)
-我假设因为我应该输入一个有效的
api密钥
,所以您提供了一个假的(
api密钥=xxxxxxxxxx
)。

谢谢!不幸的是,即使使用JSONP(并插入我的api密钥),它也只会返回两个结果:
Suzanne Bonamici-地区1 Greg Walden-地区2 Error
@elthatcher首先,现在您成功地与api服务器建立了通信,其次,现在的问题是您试图从API中获取的数据-每个查询似乎都没有此类数据。使用[3,4,5,4,5]查询时,数据似乎存在让步:<代码> Earl Blumenauer -区3 Peter A. DeFazio区4库尔特SrRADER区5错误错误< /代码>不幸的是,我不需要错误-即五返回“代码>”数据。结果[ 0 ]。名称+ + -地区+数据。结果[ 0 ]。仍然存在随机故障,仅返回两个而不是五个请求。