2014-03-07 45 views
1

我想只做一個簡單的get_survey_list調用 - 但它總是返回一個錯誤:「沒有JSON對象可以解碼:第1行0列(char 0)」survemonkey api get_survey_list返回錯誤,「沒有JSON對象可以解碼」

下面的代碼:(我的API密鑰和OAuth代碼審查)

$(function(){ 
    $.ajax({ 
     url:'https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=XXXXXXXX', 
     type:'post', 
     contentType:'application/json', 
     dataType:'json', 
     headers:{ 
      Authorization:'bearer XXXXXXXXXXXXXXXX', 
      'Content-Type':'application/json', 
     }, 
     complete:function(jqXHR, textStatus){ 
      console.log(jqXHR.responseJSON); 
     } 
    }); 
}); 

我缺少的東西?當我嘗試CURLing它,它的工作原理:

curl -H 'Authorization:bearer XXXXXXXXXXX' -H 'Content-Type: application/json' https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=XXXXXXXXX --data-binary '{}' 

...這是煩人的。

+0

你能告訴你的應用程序發送SurveyMonkey的輸出? –

回答

4

SurveyMonkey的API端點都需要一個JSON編碼的POST主體。對於get_survey_list,在POST主體中沒有數據是有效的。這樣做時,API將返回一個數組,列出您訪問的帳戶的所有調查ID。但是,您仍然需要發送一個JSON編碼的POST主體,它只會是空的(「{}」)。

在你的榜樣,這個最小的變化應該提供的結果您正在尋找:

$(function(){ 
    $.ajax({ 
     url:'https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=XXXXXXXX', 
     type:'post', 
     contentType:'application/json', 
     dataType:'json', 
     data: '{}'. 
     headers:{ 
      Authorization:'bearer XXXXXXXXXXXXXXXX', 
      'Content-Type':'application/json', 
     }, 
     complete:function(jqXHR, textStatus){ 
      console.log(jqXHR.responseJSON); 
     } 
    }); 
}); 

一般情況下,你會建造你POST機構作爲JavaScript對象,並使用JSON.stringify()來編碼他們。如果你想看到你的調查的標題與它們的ID一起返回Jquery Ajax Posting json to webservice

,你可以做這樣的事情:此信息可能是理解這一過程有幫助。如果你得到一個錯誤

$(function(){ 
    $.ajax({ 
     url:'https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=XXXXXXXX', 
     type:'post', 
     contentType:'application/json', 
     dataType:'json', 
     data: JSON.stringify({fields:"title"}), 
     headers:{ 
      Authorization:'bearer XXXXXXXXXXXXXXXX', 
      'Content-Type':'application/json', 
     }, 
     complete:function(jqXHR, textStatus){ 
      console.log(jqXHR.responseJSON); 
     } 
    }); 
}); 
+0

ohhhhh是的,是的,這是有道理的!我發送POST PARAMS,但它想要一個JSON對象的字符串版本。疑難雜症。謝謝,我覺得這是我忽略的東西! –

0

是:在「SurveyMonkey的API」預期的目標或價值」消息,這個代碼是爲你工作

   $.ajax({ 
       url: "https://api.surveymonkey.net/v2/surveys/get_survey_details?api_key=xxxxxxxxxxxxx", 
       type: "post", 
       contentType: "application/json;", 
       dataType: "json", 
       data: JSON.stringify({ "survey_id": "xxxxxxxx" }), 
       headers: { 
       Authorization: "bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.J=", 
       "Content-Type": "application/json" 

       }, 
       complete: function (jqXHR, textStatus, body) { 
       console.log(jqXHR.responseJSON); 
       } 
      }); 

,如果您有任何奎雷斯請詢問到SurveyMonkey的API團隊,他們會聯繫您![email protected]https://developer.surveymonkey.com/

+0

如果在SurveyMonkey API中的錯誤中收到「Expected object or value」消息,上面的代碼適用於您。 – John

相關問題