如何在localhost服务器上使用javascript ajax调用java类函数

时间:2016-11-02 13:12:02

标签: javascript java ajax function server

我有这样的事情:

package beans;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("cc")
@Stateless
public class CardBean implements ICardRemote {

@Produces(MediaType.APPLICATION_JSON)
@Path("validate/{creditCard}")
@GET
@Override
public boolean Validate(@PathParam("creditCard")String creditCard){                 
    int sum = 0;                    
     boolean alternate = false;                 
     for (int i = creditCard.length() - 1; i >= 0; i--)                 
     {                         
        int n = Integer.parseInt(creditCard.substring(i, i + 1));                          
        if (alternate)                        
        {                                
             n *= 2;                                 
             if (n > 9)                              
            {                                
                n = (n % 10) + 1;                               
            }                         
         }                         
         sum += n;                        
        alternate = !alternate;                 
    }           
    return (sum % 10 == 0); //or true or false
}
}

我有功能验证

现在我有一个HTML页面,如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="code.jquery.com/jquery-3.1.1.min.js"; integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b‌​8=" crossorigin="anonymous">      </script>


</head>
<body>
<a
    href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111111">Validan</a>
<br>
<a
    href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111112">Nevalidan</a>
<br>

<br>
<input type="text" name="txtCC" value="4111111111111111" id="txtCC1">

<button name="btn" onclick="myFunction()">Click me!</button>
<br>
<br>
<p id="res">Result: </p>


<script>
function myFunction() {

    //    document.getElementById("res").innerHTML = "Result:" + txtCC1.value;
        var str = txtCC1.value;

         $.ajax({
            type: 'GET',
            url: './validate/'+str,                 
            success: function(data) {                               
                     document.getElementById("res").innerHTML = "Result:" + data;          
            },
            error: function(jqXHR, textStatus, errorThrown) {
                        //Do something on ERROR here                            
            }
        });                 
}
</script>

<br>

</body>
</html>

所以最后,我有一个文本字段,里面有一个硬编码。

点击按钮,我需要取出该号码并将其发送到我的验证功能。

一旦功能完成,我需要将结果写在按钮下面......这里......

<p id="res">Result: </p>

所以它必须像Result:true或Result:false

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作(确保包含jQuery库!):

function myFunction() {
    document.getElementById("res").innerHTML = "Result:" + txtCC1.value;
    var str = txtCC1.value;

    //Here i need a code to call my validation function 
    //like: var res=Validation (str);
    //and then do the  
    //document.getElementById("res").innerHTML = "Result:" + res;
    //DONE


     $.ajax({
        type: 'GET',
        url: './validate/'+str,   //Make sure you put the correct endpoint URL here!                
        success: function(data) { 
                    //DO SOMETHING HERE AFTER YOU GET THE RESPONSE FROM the validate function
                    document.getElementById("res").innerHTML = "Result:" + data;
                 },
        error: function(jqXHR, textStatus, errorThrown) {
                    //Do something on ERROR here                            
               }
    });

}

答案 1 :(得分:0)

您可以在此链接下找到问题的答案:ANSWER

阅读有关使用javascript消费休息服务的更多信息

答案 2 :(得分:0)

这是正确的代码... thx to Mechkov

function myFunction() {
console.log($);
        var str = txtCC1.value;
         $.ajax({
            type: 'GET',
            url: 'http://localhost:8080/CreditCardWEB/rest/cc/validate/'  +str,                 
            success: function(data) {                               
                     document.getElementById("res").innerHTML = "Result: " + data;         
            },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log(jqXHR +' : '+ textStatus +' : '+ errorThrown);             
            }
        });                 
}