昨天,我很高兴从本地开发机器 (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 控制台页面,它告诉我控制台遇到了问题,他们正在努力修复它。
我猜这只是一个更大问题的症状。