2017-07-07 13 views
2

WebサービスにGETリクエストを送信しようとしています。JavaScriptでGETを使用してRESTful Webサービスを呼び出す

xとyの値に割り当てられた値を持つWebサービスが設定されています。ここで、xは値A-Eを表し、yは値1-5を表します。 C1に値が割り当てられているとしましょう。

URL:xxxx:xxxx/app/x/c/y/1を指定すると、「成功」という応答が返され、xとyが他の値を表す場合は、無効なデータ型の場合にも同様です。

私はそれを動作させるように見えることはできません!

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> 
+0

あなたのHTMLページ内のJavaScript関数からハードコードされたURLに当たってみましたか? '$(document).ready()'関数の '$ .ajax()'呼び出しの '' http://x.x.x.x:xxxx/app/x/c/y/1 "'のようなものがありますか? – ArunGeorge

答えて

2

ご質問の状態:私はURLを指すのであれば

Webサービスは、次のロジックが含まれていますXXXX :xxxx/app/x/c/y/1それから私は「成功」の応答を返すだろう

したがって、URLに値を送信する必要があります。しかし、あなたの現在のjQueryコードは$.ajaxというdataプロパティを指定すると、それらをクエリー文字列で送信します。この問題を解決するには

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

チャームのように働いた!ありがとうございました。これを読んでいる誰かに注意するだけで、オブジェクトオブジェクトがアラートに戻ってきますので、最初に文字列化する必要があります – Porkball21

+0

問題なく、うれしいです。 '[Object object]'の問題は、 'alert()'が受け取った値に対して 'toString()'を呼び出すためです。その理由から、代わりに 'console.log()'や 'console.dir()'を使わない方がいいです。 –

+0

私のあいまいな質問は申し訳ありません。怠惰である! – Porkball21

関連する問題