Toon posts:

[javascript/.NET] Aanroepen webservice met javascript

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ben al een tijdje bezig met het aanroepen van webservice met javascript. helaas is dit nog niet gelukt. Heb al een tijdje naar informatie gezocht op het internet maar kon helaas vrij weinig vinden. dit geldt ook voor tweakers.net.

Wat heb ik precies gedaan?
1 Ik heb een willekeurig web applicatie (.net) gemaakt met een database. Bij het starten van deze web applicatie ziet men alleen de gegevens die in de database zijn opgeslagen. Allemaal leuk en aardig. Daarnaast heb ik binnen deze web applicatie een webservice ontwikkeld met een webmethod die een aantal gegevens in die database invoert. Ik heb deze webservice gebruikt bij een andere willekeurig web applicatie (.net) gebruikt en deze werkt perfect.

2 Nou wil ik binnen javascript die webservice gebruiken. Wat heb ik hiervoor gedaan?
- ik heb de webservice.htc (html component) geplaats in de root folder van de nieuwe web applicatie (ook .net alleen bevat de aspx file geen .net code)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
  <head>
    <title>WebForm1</title>
    <script language="javascript">
        function initWebHTC()
        {
            service.useService{"http://localhost:8080/ShowWebStatics/InsertBrowserInformation.asmx?WSDL","InsertBrowserInformation");
            var iCallID;
            iCallID=service.InsertBrowserInfo.callService("test","script","webservice");
        }
    </script>
  </head>

<body onload="initWebHTC()">
<div id="service" style="behavior: url(webservice.htc)" >
</div>
</body>
</html>
.

ik heb netjes de webservice.htc file gekoppeld aan de aspx file. Daarnaast heb ik een assemble gemaakt met behulp van de wsdl file (zie link boven). de ddl file heb ik binnnen de bin folder geplaats. Daarnaast heb ik er een web referentie toegevoegd. Ook heb ik een nieuwe asmx file aangemaakt met een webmethod die de webmethod aanroept die ik wil gaan gebruiken. Deze heb ik dezelfde naam gegeven als de webservice die ik in de html heb genoemd.


Vervolgens heb ik alles gecompileerd en alles runt. Maar helaas niks gevuld in database |:( .

Kan iemand mij vertellen wat ik fout doe? Daarnaast wil ik graag weten of er beperkingen zijn door het aanroepen van webservice binnen javascript?

hopelijk kunnen jullie mij helpen. _/-\o_

alvast bedankt

  • Standeman
  • Registratie: November 2000
  • Laatst online: 14:08

Standeman

Prutser 1e klasse

Ik ben een beetje noob wat betreft .NET en webservices en ben er pas mee begonnen. Echter heb ik wel wat verstand van web applicaties (zegt men :P)

Dus daar ga ik..

De javascript zoals ik bij jou zie is client based. Dat betekend dat het in de browser van de user leeft. Vanuit daar (de client browser) is het volgens mij vrijwel onmogelijk om een webservice aan te roepen omdat je je dan rechten wilt hebben die niet krijgt van het browser. Je mag gewoon niet zomaar internet connecties maken naar webservices vanuit de client browser..

Wat je wel kan doen is een webservice aanroepen in de code-behind file (.aspx.cs) en vanuit daar een webservice aanroepen. De code-behind file wordt uitgevoerd wanneer er een pagina wordt opgevraagd.. (of een form wordt gesubmit.. wat eigenlijk hetzelfde is). Dus even een paar google termen: code-behind, c#, web reference, server sided (javascript), runat="server". Op msdn.microsoft.com kan je hier een hoop informatie over vinden. Ik zal als ik jou was beginnen met de ASP .NET page life cycle om het 1 en ander door te krijgen (ik heb niet de indruk dat je een doorgewinterde web-app developer bent...)

succes :)

[ Voor 14% gewijzigd door Standeman op 27-09-2005 21:17 ]

The ships hung in the sky in much the same way that bricks don’t.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Standeman schreef op dinsdag 27 september 2005 @ 21:14:
De javascript zoals ik bij jou zie is client based. Dat betekend dat het in de browser van de user leeft. Vanuit daar (de client browser) is het volgens mij vrijwel onmogelijk om een webservice aan te roepen omdat je je dan rechten wilt hebben die niet krijgt van het browser. Je mag gewoon niet zomaar internet connecties maken naar webservices vanuit de client browser..
Waarom kan je met Javascript geen connectie maken met een webservice? Er hoeft geen authentication nodig te zijn; het is in principe een normale pagina :)
Je mag gewoon niet zomaar internet connecties maken naar webservices vanuit de client browser..
Da's nieuw :) AJAX werkt afaik ook een beetje met dit principe? :) Javascript polling scripts zijn ook goed mogelijk :)

[ Voor 16% gewijzigd door gorgi_19 op 27-09-2005 21:21 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Javascript is de boosdoener hier lijkt me, en die indruk heb je zelf ook, gezien het feit dat je alleen JS-code post.

PW>>WG dus.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Moet bekennen dat ik niet zoveel ervaring heb op het gebied van webapplicaties.

Maar ik weet zeker dat het mogelijk is om webservice aan te roepen met javascript (client side). server side webservice aanroepen geloof ik allemaal wel.

code:
1
2
3
4
5
6
        [WebMethod]
        public void InsertBrowserInformation(string n1,string n2,string n3)
        {
            ClientSideWebservice.ConsumeWebservice webs=new ClientSideWebservice.ConsumeWebservice();
            webs.InsertBrowserInformation(n1,n2,n3);
        }


dit is de asmx file. Binnen de webmethode roep ik als het ware de daadwerkelijke webmethod aan. Deze (zie code) wordt dan in javascript aangeroepen.

ik heb echt geen idee wat ik fout doe :S

[ Voor 50% gewijzigd door Verwijderd op 27-09-2005 21:31 ]


  • victorv
  • Registratie: Januari 2002
  • Laatst online: 17-02-2024

victorv

Locallost

Vermoedelijk gebruik je Microsoft's unsupported webservice.htc component. Die werkt, maar kan ten eerste slechts eenvoudige argument types aan en ten tweede kan het component slechts een service aanroepen op poort 80 en niet op 8080 zoals jij probeert. Nu snap je waarom het component unsupported is. 8)7

Als je iets bleeding edge wilt uitproberen, ga dan eens spelen met "atlas", een beta techniek van Microsoft (ASP.NET 2.0 vereist). Dit is de AJAX implementatie van Microsoft. (AJAX = technieken om vanuit een webpagina met behulp van javascript, het XMLHTTP component en (web) services een responsieve webapplicatie te krijgen zonder pagina requests.
Als je MSDN download rechten hebt (MSDN library abonnement), dan kun je de beta downloaden.

Ben je beperkt tot .NET 1.1, google dan eens naar "AJAX.NET", een open source .NET library. Ik geloof dat deze WebControls heeft waarmee je heel eenvoudig kunt doen wat jij wilt.

Een voorbeeld van een AJAX applicatie is bijvoorbeeld google's gmail.

"Accomplishing the impossible means only that the boss will add it to your regular duties."


Verwijderd

Topicstarter
Sonii schreef op dinsdag 27 september 2005 @ 21:28:
Vermoedelijk gebruik je Microsoft's unsupported webservice.htc component. Die werkt, maar kan ten eerste slechts eenvoudige argument types aan en ten tweede kan het component slechts een service aanroepen op poort 80 en niet op 8080 zoals jij probeert. Nu snap je waarom het component unsupported is. 8)7

Als je iets bleeding edge wilt uitproberen, ga dan eens spelen met "atlas", een beta techniek van Microsoft (ASP.NET 2.0 vereist). Dit is de AJAX implementatie van Microsoft. (AJAX = technieken om vanuit een webpagina met behulp van javascript, het XMLHTTP component en (web) services een responsieve webapplicatie te krijgen zonder pagina requests.
Als je MSDN download rechten hebt (MSDN library abonnement), dan kun je de beta downloaden.

Ben je beperkt tot .NET 1.1, google dan eens naar "AJAX.NET", een open source .NET library. Ik geloof dat deze WebControls heeft waarmee je heel eenvoudig kunt doen wat jij wilt.

Een voorbeeld van een AJAX applicatie is bijvoorbeeld google's gmail.
bedankt voor de reactie. Ik ga er gelijk naar kijken _/-\o_

*edit*
volgens mij staat deze topic in de verkeerde forum. kan iemand deze forum verplaatsen naar de pw forum?

[ Voor 7% gewijzigd door Verwijderd op 27-09-2005 23:34 ]

Pagina: 1