Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GET-in-JavaScript调用restfulweb服务_Javascript_Jquery_Json_Rest - Fatal编程技术网

使用GET-in-JavaScript调用restfulweb服务

使用GET-in-JavaScript调用restfulweb服务,javascript,jquery,json,rest,Javascript,Jquery,Json,Rest,我正在努力向我的web服务发送GET请求 我设置了一个web服务,它将值分配给x和y值,其中x表示值a-E,y表示值1-5。假设这些值被分配给C1 因此,如果我指向URL:x.x.x:xxxx/app/x/c/y/1,那么我会得到一个“Success”的响应,如果x和y代表其他值,那么我会收到失败消息,等等无效数据类型的消息 我似乎无法让它工作 web服务包含以下逻辑: log.info 'queryContext = ' + queryContext def x = queryContext.

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

我设置了一个web服务,它将值分配给x和y值,其中x表示值a-E,y表示值1-5。假设这些值被分配给C1

因此,如果我指向URL:x.x.x:xxxx/app/x/c/y/1,那么我会得到一个“Success”的响应,如果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"
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
如果(x='C'| | x='C'&;y='4')返回(“命中”)
如果(yN==0 | | yN>5)返回(“错误1”)
def checkX=['A','A','B','B','C','C','D','D','E','E'],包含所有(x)
如果(checkX==false){return(“Error2”)}{
“结果”:“命中”
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>

$(文档).ready(函数(){
$('#btn')。单击(函数(){
var obj={x:$(“#xcoord”).val(),y:$(“#ycoord”).val();
$.ajax({
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
url:“http://x.x.x.x:xxxx/app/",
数据:JSON.stringify(obj),
数据类型:“json”,
成功:功能(数据){
警报(数据);
}
});
});
});
战舰
X坐标:

Y坐标:


您的问题说明:

因此,如果我指向URL:x.x.x:xxxx/app/x/c/y/1,那么我会得到一个“Success”的响应

因此,您需要在URL中发送值。但是,当您指定
$.ajax
data
属性时,您当前的jQuery代码正在querystring中发送它们

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

您是否尝试在html页面中使用javascript函数中的硬编码url?类似于
url:http://x.x.x.x:xxxx/app/x/c/y/1“
$.ajax()中的
调用
$(document.ready())
function?工作起来很有魅力!谢谢。请注意阅读本文的任何人,它将在警报中返回Object Object,因此您必须首先对其进行字符串化。没问题,很乐意提供帮助。
[Object Object]
问题是因为
警报()
调用
toString()
在它得到的任何值上。因此,最好不要使用它,而是使用
console.log()
console.dir()
相反,谢谢,很抱歉我之前提出了一个含糊不清的问题……我应该先做一些研究,我很懒!没关系。我想我已经意识到这个问题是我以前见过的:)如果我对前一个问题的评论被认为是粗鲁的,我表示歉意。这个问题更清楚,更容易理解。