2017-10-16 8 views
0

私はhttps://language.googleapis.com/v1/documents:analyzeEntitySentimentにAJAX呼び出しを送信することは常にエラー400を返し、エンティティの感情を検出するために、Googleの自然言語を使用しています、私のAJAX呼び出しは以下の通りである、Google Natural言語REST APIがエラー400を返します。無効なJSONペイロードが受信されました。不明な名前の "ドキュメント": "

{

APIKEY = '**********************';

$.ajax({ 
     type  : "POST", 
     url   : "https://language.googleapis.com/v1/documents:analyzeEntitySentiment?key="+APIKEY, 
     ContentType : "application/json", 
     data  : { 
         "document": JSON.stringify(
             { "type":"PLAIN_TEXT", 
              "content":"Nature is so beautiful" 
             }), 
         "encodingType":"UTF8" 
        }, 
     success  : function(_result){ 

      if (_result) {  
       alert('SUCCESS'); 
      }else{ 
       alert('ERROR'); 
      } 
     }, 
     error  : function(_result){ 
      alert(_result); 
     } 
    }); 

とエラー:

"code": 400, 
"message": "Invalid JSON payload received. Unknown name \"document\": Cannot bind query parameter. 'document' is a message type. Parameters can only be bound to primitive types.", 

"status": "INVALID_ARGUMENT", 

"details": [ 
    { 

    "@type": "type.googleapis.com/google.rpc.BadRequest", 
    "fieldViolations": [ 
     { 
     "description": "Invalid JSON payload received. Unknown name \"document\": Cannot bind query parameter. 'document' is a message type. Parameters can only be bound to primitive types." 
     } 
    ] 
    } 
] 

ドキュメンタリーで述べたようにhttps://cloud.google.com/natural-language/docs/reference/rest/v1/documents/analyzeEntitySentiment "文書"を要求本体データとして使用する必要があります。

ありがとうございます!

答えて

1

ドキュメントのJSON.Stringifyコールを削除します。ペイロードはすでに文字列形式です。

data  : { 
        "document": { "type":"PLAIN_TEXT", 
             "content":"Nature is so beautiful" 
            }, 
        "encodingType":"UTF8" 
       }, 
関連する問題