在 JavaScript 中使用 GET 调用 RESTful Web 服务



我正在努力向我的 Web 服务发送 GET 请求。

我有一个 Web 服务设置,其中值分配给 x 和 y 值,其中 x 表示值 A-E,y 表示值 1-5。假设这些值分配给 C1。

因此,如果我指向 URL:x.x.x.x:xxxx/app/x/c/y/1,那么我会得到"成功"的响应,如果 x 和 y 代表其他值,那么我有失败的消息,依此类推无效数据类型。

我似乎无法让它工作!

Web 服务包含以下逻辑:

log.info 'queryContext = ' + queryContext
def x = queryContext.get('x',"value")
def y = queryContext.get('y',"value")
def yN = y.toInteger()
log.info 'x = ' + x
log.info 'y = ' + y
if (x == 'C' ||  x == 'c' && y == '4') return("Hit")
if (yN == 0 || yN > 5) return("Error1")
def checkX = ['A','a','B','b','C','c','D','d','E','e'].containsAll(x)
if (checkX == false){return("Error2")}</con:dispatchPath><con:dispatchXPath/><con:parameterDispatcherRuleContainer/><con:routeScript/><con:response name="Hit" id="13e72027-3b34-4771-931a-578bd023d584" httpResponseStatus="200" mediaType="application/json"><con:settings/><con:responseContent>{
"Result":"HIT"

HTML/JavaScript 代码:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#btn').click(function () {
var obj = { x: $("#xcoord").val(), y: $("#ycoord").val()};
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://x.x.x.x:xxxx/app/",
data: JSON.stringify(obj),
dataType: "json",
success: function (data) {
alert(data);
}
});
});
});
</script> 
<title>Battleships</title>
</head>
<body>
<form>
X Coordinate:<br>
<input type="text" id="xcoord"><br>
Y Coordinate:<br>
<input type="text" id="ycoord"><br><br>
<input type="button" value="Submit" id="btn">
</form>
</body>
</html>

您的问题指出:

因此,如果我指向URL:x.x.x.x:xxxx/app/x/c/y/1,那么我会得到"成功"的响应

因此,您需要发送 URL 中的值。但是,您当前的 jQuery 代码正在查询字符串中发送它们,因为您指定了$.ajaxdata属性,即。

x.x.x.x:xxxx/app/?x=c&y=1

若要解决此问题,请按如下所示设置 AJAX 请求的 URL:

$('#btn').click(function () {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://x.x.x.x:xxxx/app/x/" + $("#xcoord").val() + '/y/' + $("#ycoord").val(),
dataType: "json",
success: function (data) {
alert(data);
}
});
});

最新更新