Avatar billede hlt Juniormester
11. december 2011 - 18:11 Der er 8 kommentarer og
1 løsning

webservice

Hej,
Jeg sidder og er ved at lave en webservice. Der er ingen problemer med at hente data med denne webservice. Men jeg får bare returneret noget xml. Og jeg ville egentligt bare have en simpel tekst streng.
Det jeg får tilbage er:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://mitsite.dk/">indhold</string>

Hvad mangler jeg siden jeg ikke kan få det til at virke?
Jeg har indsat koden til min webservice nedenfor:

<%@ WebService Language="VB" Class="getUserInfo" %>

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

<WebService(Namespace := "http://mitsite.dk/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
Public Class getUserInfo
    Inherits System.Web.Services.WebService
   
    <WebMethod()> _
    Public Function getUserInfo() As String
        If Membership.ValidateUser(HttpContext.Current.Request.Form("username"), HttpContext.Current.Request.Form("password")) = True Then
            Dim u As New memberObj(Membership.GetUser(HttpContext.Current.Request.Form("username")).ProviderUserKey.ToString)
            Return u.UserID
        End If
    End Function

End Class

Jeg kalder denne service med ajax på klienten:
function onSuccess(data, status) {
            data = $.trim(data);
            $("#notification").text(data);
        }

        function onError(data, status) {
            // handle an error
        }

        $(document).ready(function () {
            $("#Button1").click(function () {

                var formData = $("#form1").serialize();

                $.ajax({
                    type: "POST",
                   
                    url: "getUserInfo.asmx/getUserInfo",
                    data: formData,
                    dataType:'text',
                    success: onSuccess,
                    error: onError
                });

                return false;
            });
        });
Avatar billede arne_v Ekspert
12. december 2011 - 15:39 #1
Du kan rette din JavaScript til at parse XML og kun vise selve data.

Eller du kan rette din web service til kun at outputte de raa data (saa skal du nok droppe WebMethod og lave en simpel .ashx).
Avatar billede hlt Juniormester
12. december 2011 - 20:32 #2
jeg har et javascript som sorterede alt xml kode fra, så det kun var indholdet der var tilbage.
Nu overvejer jeg lidt at sætte det op til soap. Ved du hvad jeg skal skrive for at kunne bruge soap?
Avatar billede arne_v Ekspert
12. december 2011 - 20:41 #3
Du kan finde et JavaScript lib til det.

Google termerne er:

javascript soap client library
javascript soap client
javascript soap library

Men det er altsaa ret uhensigtsmaessigt at bruge SOAP fra client side Java Script.

Simpel XML eller endny mere letvaegt JSON er bedre.
Avatar billede hlt Juniormester
12. december 2011 - 22:55 #4
Jeg synes selv det er lidt omstændigt at bruge. Og jeg kan ikke helt forstå hvorfor man har lavet soap. Jeg synes personligt at det er meget nemmere med at alm. webservice. Jeg kender desværre ikke så meget til det, så jeg kan sige om det er bedst med det ene eller det andet. måske du har et svar på det. Jeg har en arbejdskollega, som bare synes det er svaret på alt :-)
Men jeg har nemlig fundet noget javascript som kan lave et soap request. Det var bare om hvordan jeg skal sætte min webservice op.
Avatar billede arne_v Ekspert
12. december 2011 - 23:14 #5
en .asmx burde faktisk generere SOAP som default

for WCF kan du angive det
Avatar billede arne_v Ekspert
12. december 2011 - 23:14 #6
SOAP er rigtigt godt for server til server med type sikkerhed, namespace support etc.
Avatar billede janus_007 Nybegynder
13. december 2011 - 12:21 #7
Ja enig med Arne...

Men ellers kunne du jo også sætte din webservice op til at smide JSON retur, så er du ude over alt det bøvl :)


Og husk nu "svaret på alt" er ofte givet af folk der netop ikke har "svaret" :)
Avatar billede hlt Juniormester
13. december 2011 - 18:35 #8
Kunne I give et eksempel? Jeg har prøvet lidt af hvert fra eksempler som jeg har fundet på nettet. Men ingen af dem har jeg fået til at virke. Mit scenarie er at jeg har en klient som skal tilgå en webservice via ajax.
Selve webservicen ser sådan ud:

<%@ WebService Language="VB" Class="getUserInfo" %>

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<WebService(Namespace := "http://boligintra.net/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
Public Class getUserInfo
    Inherits System.Web.Services.WebService
   
    <WebMethod()> _   
Public Function getUserInfo(ByVal username As String, ByVal password As String) As String
        'valider brugernavn og password og returner en boolean
End Function

End Class

Hvordan kalder jeg den service med ajax?
Avatar billede hlt Juniormester
26. marts 2012 - 08:30 #9
Så er det vist på tide at lukke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester