Avatar billede screwdriver Nybegynder
11. juli 2013 - 15:01 Der er 1 kommentar og
1 løsning

JQuery.ajax sender ikke username & password ved fejlkode 401

Jeg kalder en REST webservice, som bruger basic authentication, fra mit javascript vha. JQuery.ajax, men username + password bliver ikke sendt med.
Serveren retunerer 401, og så viser browseren dens login form.
Hvis jeg indtaster brugernavn/password, sendes det til serveren, frem for det jeg har tilføjet i ajax kaldet.

I JQuery doc står der:
A username/password to be used with XMLHttpRequest in response to an HTTP access authentication request.

Jeg går ud fra at når man har angivet username & password, skal de sendes med i stedet for at vise loginformen

$.ajax({
        type: "GET",
        url: "http://localhost:8080/test",
        data: '',
        contentType: "application/json; charset=utf-8",
        dataType: "xml",
        username: "ajax",
        password: "code",
        success: OnSuccessCall,
        error: OnErrorCall
    });
Avatar billede MadsHaupt Juniormester
18. juli 2013 - 13:03 #1
Jeg ved ikke så meget om JQuery, men jeg tror det vil virke hvis man splacerde username og password i data:

kode:

$.ajax({
        type: "GET",
        url: "localhost:8080",
        data: {username: "ajax", password: "code"},
        contentType: "application/json; charset=utf-8",
        dataType: "xml",
        success: OnSuccessCall,
        error: OnErrorCall
    });

Du kan også prøve at kigge lidt på det her:
http://stackoverflow.com/questions/4105211/jquery-ajax-post-to-php
http://www.google.dk/#sclient=psy-ab&q=post+to+php+jquery
Avatar billede screwdriver Nybegynder
19. juli 2013 - 10:01 #2
MadsHaupt: Basic authentication kræver brugernavnet og passwordet tilføjet i headeren, ikke i data, så dit forslag virker desværre ikke.

Jeg har fundet ud af hvad mit problem var:
Jeg kørte mit script fra en fil, og derfor behandler JQuery det som et cross-domain kald. Det resulterer så i at jquery først laver en forespørgsen uden header, som serveren så svarer 401 til. Det resulterer så i at browseren viser loginformen.

Jeg requesteded i stedet mit script fra webserveren, og så virker basic authentication
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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