使用javascript向Restful Web服务发布请求

使用javascript向Restful Web服务发布请求,javascript,jquery,html,rest,jsp,Javascript,Jquery,Html,Rest,Jsp,我试图为我的web服务创建一个客户端,因此我试图使用Javascript向web服务发出POST请求,但没有得到任何响应。请向我建议正确的方法来向我的web服务发送post请求 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>AIMS LoginPage</title&g

我试图为我的web服务创建一个客户端,因此我试图使用Javascript向web服务发出POST请求,但没有得到任何响应。请向我建议正确的方法来向我的web服务发送post请求

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AIMS LoginPage</title>
<script type="text/javascript">
function validate(){
    if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest;
}
else{
    xmlhttp=new ActiveObject('Microsoft.XMLHTTP');
}
if(xmlhttp)
{
    var username=document.index.Uid.value;
    var password=document.index.pass.value;
    var a="<?xml version=\"1.0\" encoding=\"UTF-8\"?><credentials><username>";
    var b="</username><password>";
    var c="</password></credentials>";
    var authDetails=a+username+b+password+c;    
    document.getElementById("h").innerHTML=`${authDetails}`;
    xhttp.open("POST", "webserviceURIhere", true);

    xhttp.setRequestHeader("Content-type", "text/xml");
    xhttp.send(authDetails);
    xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) { 
           document.getElementById("h").innerHTML = this.responseText;
          }
    };
}
}
</script>
</head>
<body>
<form name="index" onsubmit="return validateForm();"  method="POST">
    <tr>
        <td>UserName </td>
        <td><input type="text" name="Uid" id="Uid" placeholder="Enter Username"></td>
    </tr><br>
    <tr>
        <td>Password </td>
        <td><input type="password" name="pass" id="pass" placeholder="Enter Password"></td>
    </tr><br>
    <tr>
    <td>
    <input type="button" value="Login" name="submit" onclick="validate()"></td>
    </tr>
    </form>
    <p id="h"></p> 
    </body> 
    </html>

目标登录页
函数验证(){
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest;
}
否则{
xmlhttp=newActiveObject('Microsoft.xmlhttp');
}
if(xmlhttp)
{
var username=document.index.Uid.value;
var password=document.index.pass.value;
var a=“”;
var b=“”;
var c=“”;
var authDetails=a+用户名+b+密码+c;
document.getElementById(“h”).innerHTML=`${authDetails}`;
xhttp.open(“POST”,“webserviceURIhere”,true);
setRequestHeader(“内容类型”、“文本/xml”);
xhttp.send(authDetails);
xhttp.onreadystatechange=函数(){
如果(this.readyState==4&&this.status==200){
document.getElementById(“h”).innerHTML=this.responseText;
}
};
}
}
用户名

密码


您传递的是字符串
'authDetails'
,而不是变量
authDetails

编辑:

//确保在请求时发送正确的标题信息

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

查看网络选项卡以了解发生了什么。(或者,你可以考虑放弃<代码> AcvivObjs<代码>,除非你真的需要支持IE5和IE6),我改变了它。但仍然没有效果。是否尝试更改标题“内容类型”?