1

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

我猜这只是一个更大问题的症状。

4

0 回答 0