Avatar billede RasmusTheR Seniormester
07. oktober 2016 - 23:34 Der er 1 kommentar og
2 løsninger

Plus tegn forsvinder ved AJAX

Jeg har problemer med at sende en streng som indeholder plus tegn med AJAX. Plus tegnene forsvinder..

variablen opg_reg, som jeg sætter til "1+1=2,2+2=4,3+3=6" bliver til "1 1=2,2 2=4,3 3=6" når den ryger over på AJAX siden..

Er der en logisk forklaring på det?

function ajax_post(){
        var hr = new XMLHttpRequest();
        var url = "math_ajax.php";
    var opg_reg = "1+1=2,2+2=4,3+3=6";
        var vars = reg_fejl="+opg_reg;
        hr.open("POST", url, true);
        hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       
        hr.onreadystatechange = function() {
          if(hr.readyState == 4 && hr.status == 200) {
            var return_data = hr.responseText;
            document.getElementById("status").innerHTML = return_data;
          }
        }
     
        hr.send(vars); // Actually execute the request
        document.getElementById("status").innerHTML = "<img src='_pic/loading.gif' width='44' height='44' />";
    }
Avatar billede erikjacobsen Ekspert
07. oktober 2016 - 23:57 #1
Du skal jo, altid, url-encode værdier i URL-en. Et + svarer altid til et mellemrum, men skal du faktisk have et + skal du skrive %2B

Eller kigge på encodeURI i java script: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
Avatar billede RasmusTheR Seniormester
08. oktober 2016 - 10:12 #2
Det hjalp, 1000 tak :-)
Avatar billede olsensweb.dk Ekspert
08. oktober 2016 - 10:23 #3
en anden løsning encodeURIComponent


var vars = reg_fejl="+opg_reg;
skal se sådan ud
var vars = "reg_fejl="+encodeURIComponent(opg_reg);


http://stackoverflow.com/questions/1373414/ajax-post-and-plus-sign-how-to-encode
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

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