使用javascript向Restful Web服务发布请求
我试图为我的web服务创建一个客户端,因此我试图使用Javascript向web服务发出POST请求,但没有得到任何响应。请向我建议正确的方法来向我的web服务发送post请求使用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
<!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),我改变了它。但仍然没有效果。是否尝试更改标题“内容类型”?