iron 11 Posted December 28, 2016 Report Share Posted December 28, 2016 (edited) Boas. Estou aqui com um pequeno problema. O meu pedido ajax retorna sempre status 0. No lado do servidor é feito aquilo que quero, contudo não consigo entender o meu erro para que ele me dê sempre o status 0. function addPlaylist(path) { const allPlaylists = document.getElementById('allPlaylists') const form = document.getElementById('newplaylist') path = path + '?' + form.name + '=' + form.value loadXMLDoc('post', path, (erro, data) => { if(data) alert(data) }) } function loadXMLDoc(method, path, cb) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == XMLHttpRequest.DONE ) { if (xmlhttp.status == 200) { cb(null, xmlhttp.responseText) } else if (xmlhttp.status == 400) { alert('There was an error 400') cb() } else { alert('something else other than 200 was returned'); cb() } } }; xmlhttp.open(method, path, true); xmlhttp.send(); } E o lado do servidor retorna isto: ... let obj = {} obj.layout = false obj.name = req.query.newplaylist.trim() obj.user = {} obj.user.username = req.user.username res.render('addPlaylist', obj) ficheiro addPlaylist: <tr id="{{name}}"> <td><a href="/spotify/playlists/{{user.username}}/{{name}}">{{name}}</a></td> <td> <form action="/{{user.username}}/remove/{{name}}" method="post"> <input class="btn btn-default btn-xs" type="submit" value="Remove"> </form> </td> <td align="left"> <form action="/{{user.username}}/update/{{name}}" method="post"> <input type="text" name="newname"> <input class="btn btn-default btn-xs" type="submit" value="Update"> </form> </td> </tr> Desde já obrigado. Edited December 28, 2016 by iron Cumprimentos, iron Link to post Share on other sites
HappyHippyHippo 1,162 Posted December 28, 2016 Report Share Posted December 28, 2016 o que queres dizer com "status 0" ? é que esse "status" não existe na lista de valores associada a um HTTP request ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
iron 11 Posted December 28, 2016 Author Report Share Posted December 28, 2016 (edited) Sim 0. Contudo eu não sei o porque. Eu andei à pesquisa e a maior parte das vezes o que diziam era que o pedido era cancelado. Mas não percebo o porque. Edited December 28, 2016 by iron Cumprimentos, iron Link to post Share on other sites
HappyHippyHippo 1,162 Posted December 28, 2016 Report Share Posted December 28, 2016 epa ... isso nao quer dizer nada ... a mudança de estado não quer dizer que tenhas recebido a resposta (ainda) ... continua a execução IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
iron 11 Posted December 28, 2016 Author Report Share Posted December 28, 2016 (edited) Mas quando vejo o status, já tenho de ter uma resposta. Pois estou a dizer que o pedido é async. Mas ele nunca retorna dados. Ou eu estou a pensar mal e fazer isto mal. Também sou novo nas andanças do ajax P.S: eu corri em debug. Ele vai ao servidor, faz o que tem a fazer é retorna uma resposta de um novo nó para adicionar à minha árvore no html. O problema deve estar no pedido ou no retorno do meu servidor. Mas não consigo perceber onde estou a fazer algo mal Edited December 28, 2016 by iron Inserção de um novo ponto Cumprimentos, iron Link to post Share on other sites
iron 11 Posted December 28, 2016 Author Report Share Posted December 28, 2016 (edited) Já consegui. Faltava-me um "return false" quando faço o "onsubmit". Obrigado P.S: Deveria ter colocado onde era feita a chamada ao método: <form onsubmit='addPlaylist("/{{user.username}}/newplaylist")'> <label>New playlist</label> <input type="text" name="newplaylist" id="newplaylist"/> <input class="btn btn-default btn-xs" type="submit" value="Add"/> </form> a correcção foi só adicionar o returna false: <form onsubmit='addPlaylist("/{{user.username}}/newplaylist"); return false'> <label>New playlist</label> <input type="text" name="newplaylist" id="newplaylist"/> <input class="btn btn-default btn-xs" type="submit" value="Add"/> </form> Edited December 28, 2016 by iron Cumprimentos, iron Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now