SurveyMonkey api入门

时间:2015-12-03 19:55:04

标签: javascript surveymonkey

我试图开始使用SurveyMonkey API。

    $.ajax({
        method:"POST",
        url:"https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key="+apiKey,
        headers:{
          "Authorization": "bearer "+token,
          "Content-Type": "application/json"
        },
        body:{
          "fields": [
            "title",
            "analysis_url",
            "preview_url",
            "date_created",
            "date_modified",
            "question_count",
            "num_responses"
          ]
        }   
    })
    .success(createListPicker)
    .error(handleError)

我收到错误消息:

  

XMLHttpRequest无法加载   https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=bs579cpsb4mnvn4vh6uqvp2m。   该请求被重定向到   ' https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key=bs579cpsb4mnvn4vh6uqvp2m&#39 ;,   这对于需要预检的跨源请求是不允许的。

我正在查看有关CORS的几个不同页面,但无法弄清楚下一步是什么。有什么建议吗?

继续抨击 我继续尝试找出jsonp - 但这似乎是can't handle the authorization headers

我还尝试使用FormData来包含额外的授权和选项following this thread。它将连接到api,但后来说它无法找到授权令牌。

我正在接近以下代码:

    $.ajax({
        type:"POST",
        url:"https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key="+apiKey,
        beforeSend: function(xhr) {
                        xhr.setRequestHeader('Authorization','bearer ' + token);
                        xhr.setRequestHeader('Content-Type','application/json');
                    } 
    })
     .success(createListPicker)
     .error(handleError)

实际连接和验证,但它返回状态3"预期对象或值"。 Status codes documented here

1 个答案:

答案 0 :(得分:1)

所以在敲了一整天之后我终于开始工作了。我使用带有beforeSend的jqueries post来处理身份验证,使用JSON.stringify()来处理请求的主体。最终代码如下:

    var obj = {
          "fields": [
            "title",
            "date_created",
            "date_modified",
            "num_responses"
          ],
          "start_date":"2015-12-01 00:00:00"
        }

    $.ajax({
        type:"POST",
        dataType:"json",
        contentType:'application/json; charset=utf-8',
        url:"https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key="+apiKey,
        data:JSON.stringify(obj),
        beforeSend: function(xhr) {
                        xhr.setRequestHeader('Authorization','bearer ' + token);
                        xhr.setRequestHeader('Content-Type','application/json');
                    } 
    })
     .success(createListPicker)
     .error(handleError)

现在我需要弄清楚身份验证持续多长时间以及当我尝试深入了解特定信息时会发生什么......