Javascript REST API发布表单

时间:2015-07-13 19:05:55

标签: javascript html json rest

我是REST的新手,我正在尝试向JSON主体添加变量,因此我可以为值设置输入表单。

在将函数包装成函数后,我也尝试将getElementID与此HTML表单一起使用,但我没有成功。

    var requestBody = "{'companyid':'getElementById('companyid')','knowledgeid':'getElementById('knowledgeid')','source_code':'getElementById('source')','article_title':'getElementById('title')'}"; 

var client=new XMLHttpRequest();
client.open("post","<URL>");

client.setRequestHeader('Accept','application/json'); 
client.setRequestHeader('Content-Type','application/json');

client.setRequestHeader('Authorization', 'Basic '+btoa('admin'+':'+'admin'));

client.onreadystatechange = function() { 
    if(this.readyState = this.DONE) {
        document.getElementById("response").innerHTML=this.status + this.response; 
    }

}; 
client.send(requestBody);

以下是表格:

<form enctype="application/json" action="<URL>" method="post">
Title:<input id="title" type="text"></input>
Company:<input id="companyid" type="text"></input>
KnowledgeID:<input id="knowledgeid" type="text"></input>
HTML:<input id="source" type="text" ></input>


<input type="button" value="Send" onClick="restRequest()"></input>

2 个答案:

答案 0 :(得分:0)

在定义requestBody的值时,您不希望获得元素本身,但它的价值。你也有这样的单引号,所以它不会被评估。

var requestBody = "{'companyid': '" + document.getElementById('companyid').value + "', 'knowledgeid': '" + document.getElementById('knowledgeid').value + "', 'source_code': '" + document.getElementById('source').value + "', 'article_title': '" + document.getElementById('title').value + "'}";

答案 1 :(得分:0)

构建一个正文使用正确的连接时需要注意,请参阅以下的alertbox

var requestBody = "{companyid: " + document.getElementById(companyid).value + ", knowledgeid: " + document.getElementById(knowledgeid).value + ", source_code: " + document.getElementById(source).value + ", article_title: " + document.getElementById(title).value + "}";

alert(requestBody);

我建议花点时间看一下JQuery框架。它会让你的生活更轻松