昨天,我很高兴从本地开发机器(http:// localhost:nnnn)对SurveyMonkey进行API调用
今天早上(在完全没改变之后),我突然收到以下错误:
XMLHttpRequest cannot load https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=xxxxxxxxxx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8500' is therefore not allowed access. The response had HTTP status code 596.
我正在使用的代码产生此错误如下:
$.ajax({
url: 'https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=xxxxxxxxxx',
type: 'post',
contentType: 'application/json',
cache: false,
dataType: 'json',
data: JSON.stringify({
survey_id: 'nnnnnnnn',
respondent_ids: respondents //respondents is an array defined elsewhere
}),
headers:{
Authorization: 'bearer ' + local.SurveyMonkey.AccessToken,
'Content-Type': 'application/json'
},
success: function(survey, textStatus, jqXHR){
$('#SMResults').empty().append('<br />'+textStatus);
$p.fnLog(survey.data);
$p.fnLoadView('surveyView.cfm','SMResults',survey);
},
error: function(jqXHR, textStatus){
$('#SMResults').empty().append('Oh nos!! Something went wrong!');
$p.fnLog(jqXHR);
$p.fnLog('----------------------');
$p.fnLog(textStatus);
},
complete: function(jqXHR, textStatus){
$('#SMResults').append("<br /><br />We're done.");
}
});
同样,这段代码昨晚工作得非常出色。我尝试将此转换为JSONP调用失败。 :(
知道发生了什么事吗?我昨天为什么能高兴地拨打这些电话,但今天不是?
感谢阅读。
更新:结果是我进一步检查了我得到的响应标头:
X-Mashery-Error-Code: ERR_596_SERVICE_NOT_FOUND
这就是响应中没有相应的Access-Control标头的原因。不知道Mashery有什么用?或者我应该在哪里看?
更新2:我对这是一个SurveyMonkey / Mashery问题更有信心。我刚刚访问了SurveyMonkey API Console页面,它告诉我控制台遇到了问题,他们正在努力修复它。
我猜这只是一个更大问题的症状。