2017-08-20 12 views
-1

サードパーティAPIにユーザー入力(文字列)を送信していますが、JSON結果が<p class="score">であると予想されます。 userinputはJavascriptに渡されませんが、alertからアクセスできます。構文に問題がある場合は、教えてください。提出時にJS関数コードに文字列値を渡す

var myurl = 'https://apiv2.coolcompany.io/sentiment'; 
 
var api_key = 'xxxxxxxxxxxxxxxxxxxxxxx'; 
 

 

 
function ApiRequest() { 
 

 
    var mydata = document.getElementById('userinput').value; 
 

 
    $.post(
 
     myurl, 
 
     JSON.stringify({ 
 
     'api_key': api_key, 
 
     'data': mydata, 
 

 
     }).then(function(sent) { 
 

 
     var s = sent 
 
     var obj = JSON.parse(s) 
 

 
     $('.score').append(obj.results) 
 

 
});
<input placeholder="I love writing code!" id="userinput">  
 

 
<button onclick="ApiRequest()" id="submit">Try It</button> 
 

 
<p class="score">Score : </p>

+0

ここで、文字列を正確に渡していますか? mydataはオブジェクトでなければならないことをご存知ですか? – Roysh

+0

"$( '。score')。テキスト(" Score: "+ obj.results)' – keja

+0

の例に示すように、 '.then'ではなく' .done'を使用してみてください。 jqueryのドキュメント:https://api.jquery.com/jquery.post/ –

答えて

1

あなたはpost)ApiRequest機能の}を逃している:

function ApiRequest() { 
    var mydata = document.getElementById('userinput').value; 
    $.post(
     myurl, 
     JSON.stringify({ 
      'api_key': api_key, 
      'data': mydata, 
     })).then(function(sent) { 
      var s = sent 
      var obj = JSON.parse(s) 
      $('.score').append(obj.results) 
     }); 
} 

何あなたのコードは現在ありませんがJSON.stringifyの結果に呼び出しthenです。

+0

ありがとう!私はそれが文法の問題だと確信していました。私はPythonから来た)= – Blacksun

+0

@Blacksunあなたのコードエディタで一致する大括弧オプションを有効にして、括弧/角かっこ/中カッコを閉じることで一致するものが見えるようにします。これは非常に便利です。それらのいくつかを閉じるときに、閉じ括弧をどこに配置するかは決まりません。 –

+0

SublimeTextを使用している場合は、そのプラグインを知っていますか?ありがとう! – Blacksun

関連する問題