在javascript中发布使用json body来休息api的请求

问题描述 投票:0回答:2

我试图通过jira rest api在我的jira应用程序中添加评论问题,我正在使用json正文的html / javascript代码中执行此操作但是我正在提出请求时遇到以下错误

“errorMessages”:[“意外字符('Ã'(代码195)):预期有效值(数字,字符串,数组,对象,'true','false'或'null')\ n在”

{“errorMessages”:[“VALUE_STRING \ n中意外的输入结束\ n在[来源:org.apache.catalina.connector.CoyoteInputStream@7b422cb8;行:1,列:159]”]}

这是我的代码,请考虑我的URL和凭据是正确的。我在REST客户端尝试使用相同的URL,凭据和json正文,并且能够在我的JIRA中添加注释问题,任何人都可以告诉我哪里做错了?

<html>
<head>
<meta charset="ISO-8859-1">
<title>Add Comment JIRA REST API</title>
<script type="text/javascript">
function addComment() {
    var xhttp = new XMLHttpRequest();
    var commentJson = '{"body" : “adding comment to the task from client side javascript code”}';
   
    xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4) {
      document.getElementById("demo").innerHTML =xhttp.responseText;
    }
  };
  
    xhttp.open("POST", "URL",true);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader("X-Atlassian-Token", "nocheck");
    xhttp.setRequestHeader('Authorization', 'Basic'+btoa('username:password')); 
    xhttp.send(commentJson);
}
</script>
</head>
<body>
<h2>Adding Comment</h2>
<button type="button" onclick="addComment()">Add Comment</button>
<p id="demo"> </p>
</body>
</html>
javascript json rest
2个回答
0
投票

好像你传输了一些非有效格式的数据。这意味着你需要使用JSON.Stringify()或编码UTF-8中的json数据。可能JSON.Stringify()会解决这个问题。


0
投票

这一行:

 var commentJson = '{"body" : “adding comment to the task from client side javascript code”}';

...在第二个内部字符串周围有错误的双引号。确保所有双引号都是直的,而不是左引号或右引号,如下所示:

var commentJson = '{"body" : "adding comment to the task from client side javascript code"}';

此外,您可能必须确保您的字符编码匹配,正如whiterabbitj建议的那样,但首先您必须处理使用错误的引号。看起来您正在发送UTF-8,但服务器将您的数据视为ISO-8859-1。

© www.soinside.com 2019 - 2024. All rights reserved.