Webservice aanroepen vanuit Javascript

Status
Niet open voor verdere reacties.

Kevin We

Gebruiker
Lid geworden
8 sep 2005
Berichten
119
Beste,

ik zou graag een webservice aanroepen vanuit html en javascript.
Op de site van msdn heb ik het voorbeeld bekeken en mijn code ook op die manier geschreven. Maar blijkbaar gebeurt er niet, geen foutmelding, geen resultaat, totaal niets.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Test HelloWorld</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script src="gadget.js" type="text/javascript"></script> 
    
<SCRIPT language="JavaScript">
// All these variables must be global,
// because they are used in both init() and onResult().
var iCallID = 0;


function init()
{
    // Establish the friendly name "HelloWorld" for the WebServiceURL
    service.useService("/Webserver/build.asmx?WSDL","HelloWorld");
    // The following uses a callback handler named "mathResults"
    iCallID = service.HelloWorld.callService(HelloWorldFunction, "sayHelloWorld");
}

function HelloWorldFunction(result)
{
    // if there is an error, and the call came from the call() in init()
    if(result.error)
    {
        // Pull the error information from the event.result.errorDetail properties
        var xfaultcode   = result.errorDetail.code;
        var xfaultstring = result.errorDetail.string;
        var xfaultsoap   = result.errorDetail.raw;

        alert("Error found!!");
    }
    // if there was no error
    else
    {
        // Show the result
        alert(result.value);
    }
}
</SCRIPT>
    
    
</head>
<body onload="init()">
    <!-- this div is showed when docked -->
    <div id="HelloWorldDocked">
        <h1 class="docked">Test Hello World</h1>
		<h1 class="docked"> Undock the gadget to test </h1>
     </div>
    <!-- this div is showed when undocked -->
   <div id="HelloWorldUnDocked">
            <p> This gadget will show the &quot; Hello World String &quot;</p>
            <p> It will only work when it is undocked </p>
            	<div id="service" style="behavior:url(webservice.htc)"> </div>
  </div>
</body>
</html>

Bovenstaande code zou mijns inziens moeten werken. Maar doet het dus niet, ziet er iemand een probleem?
 
Laatst bewerkt:
Code:
 service.useService("/Webserver/build.asmx?WSDL","HelloWorld");
Dat is duidelijk een call naar een service op de localhost, heb je die wel?
 
jep, de webservice zit onder de map /Webserver/build.xml

Relatieve paden is makkelijker om mee te werken, zeker als je de applicatie ook op andere pc's moet runnen
 
ik heb volgende code via het internet binnengehaald en zelfs deze doet het niet:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Test HelloWorld</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script src="gadget.js" type="text/javascript"></script> 
    
 <SCRIPT language="JavaScript">
var iCallID;

function ExecuteWS()
{

iCallID = service.Calculator.callService("Add",num1.value,num2.value);
}

function onWSresult()
{
if((event.result.error)&&(iCallID==event.result.id))
{
var xfaultcode = event.result.errorDetail.code;
var xfaultstring = event.result.errorDetail.string;
var xfaultsoap = event.result.errorDetail.raw;
document.writeln("ERROR. Method call failed!");
document.writeln("Call ID:" + iCallID);
document.writeln("Fault Code:" + xfaultcode);
document.writeln("Fault String:" + xfaultstring);
document.writeln("SOAP Data:" + xfaultsoap);
}
else if(event.result.error == false)
{
sum.value= event.result.value;
}
}
</script>
<body onload= "service.useService('test.asmx?WSDL','Calculator');">
<div id="service" style="behavior:url(webservice.htc)" onresult="onWSresult()">
</div>

Number : <input type="text" name="num1"><br />
Number : <input type="text" name="num2"><br />
Total:<input type="text" name="sum">
<button OnClick="ExecuteWS()">Add Numbers</button>
</body>

Mijn test.asmx:

Code:
<%@ WebService Language="C#" class="TestWS" %>
using System;
using System.Web.Services;
using System.Web.Mail;

[WebService] public class TestWS : System.Web.Services.WebService
{
[WebMethod] public int Add(int num1, int num2)
{
return num1 + num2;
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan