• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 811
  • Last Modified:

Javascript Function (Not using a form post) To Call Servlet (where no return values are needed)

Hello:

I simply want to call a servlet from a javascript function.  My javascript function is not part of a form post.
The javascript function gets called from a Flash client actually.  My servlet takes a few parameters and is
expected to simply perform an update on the server side.  No html is returned for display and is not needed.

I tried something like this.:

function jsfunction()
{
        document.href.location="http://<domain.com>/servletname?parm1&parm2";
}

This doesn't work.  What is the easiest way to do this?  It needs to make the call and NOT WAIT for a response, as I my client is displaying a Flash container, and I do not want execution cycles waiting for
a return.

Please do not get involved in what my Flash client is doing and why I have it....I just need the javascript
to servlet solution without WAIT.

Thanks,

Dan
0
danw11
Asked:
danw11
  • 3
  • 2
1 Solution
 
HonorGodSoftware EngineerCommented:
0
 
danw11Author Commented:
HonorGod:

Your URL points me to a solution that is meant to update part of the DOM for changing the display
of the form.  I want a call to a servlet that does not call a callback() function.  In the example the validate()
function calls the server side.  That is good, but I don't want anything called back on the Javascript side.

Why do I need AJAX for this????

Can we do it without that?

Dan
0
 
HonorGodSoftware EngineerCommented:
Well, Ajax, by definition, allows your program to send a request to a service
application.  You can certainly have an empty callback function, something
along the lines of



  //------------------------------------------------------------------
  // Ajax routines for service contact
  //------------------------------------------------------------------
  var xmlHttp;
 
  //------------------------------------------------------------------
  // Name: createXMLHttpRequest()
  // Role: Create the XML Request Object used by the Ajax routines
  //------------------------------------------------------------------
  function createXMLHttpRequest() {
    if ( window.ActiveXObject ) {
      xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
    } else if ( window.XMLHttpRequest ) {
      xmlHttp = new XMLHttpRequest();
    }
  }
 
  //------------------------------------------------------------------
  // Name: getInfo()
  // Role: Issue the request to the service
  //------------------------------------------------------------------
  function getInfo( val ) {
    createXMLHttpRequest();
    var queryString = "/ContextRoot/ServiceName?ParmName=" + val;
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open( "GET", queryString, true );
    xmlHttp.send( null );
  }
 
  //------------------------------------------------------------------
  // Name: handleStateChange()
  // Role: Callback routine invoked when XML Request state changes
  //------------------------------------------------------------------
  function handleStateChange() {
  }

Open in new window

0
 
danw11Author Commented:
Honor God:

Excellent.  It works.  And, I now see the difference between my original attempt.:

document.href.location="http://<domain.com>/servletname?parm1&parm2";

and the AJAX solution.  The former actually redirects the browser to the URL for the servlet, which is
completely undesirable.  The latter (your AJAX solution) calls the servlet as expected without any
redirection.

Thanks,

Dan
0
 
HonorGodSoftware EngineerCommented:
Glad to be of some help.  Thanks for the grade & points.

Good luck & have a great day.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now