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

标签 javascript jquery json rest

我正在努力向我的网络服务发送 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>

最佳答案

您的问题指出:

So if I point to the URL: x.x.x.x:xxxx/app/x/c/y/1 then I would get back a response of 'Success'

因此您需要发送 URL 中的值。然而,当您指定 $.ajaxdata 属性时,您当前的 jQuery 代码会在查询字符串中发送它们,即。

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);
    }
  });
});

关于javascript - 在 JavaScript 中使用 GET 调用 RESTful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44970374/

相关文章:

javascript - 如何使用带有 OR 条件的多类选择器

javascript - 返回所有满足属性条件的数组

javascript - Fullpage.js 插件部分位置元素

javascript - 支持图形保存的客户端图形工具?

javascript - 除加法 (+) 外,所有 JavaScript 算术运算符均有效

javascript - 如何为多个调试器设置 Visual Studio Code?

jquery - LESS & FuelUX Tree - 改变步骤列表的宽度

php - PHP 中的 Sharepoint GetListItemChangesSinceToken CURL 请求

android - 如何从 URL 获取值并在微调器中设置名称并将选择值 ID 发送到 fragment 中的服务器

c++ - 将文本附加到正则表达式匹配的一部分