Eu tenho um código como este:
$("#message").load("conversation.php?link=projects/living room/room");
Quando eu executo este código, ele diz "syntax error, unrecognised expression"
no console de erros no chrome.
Mas se eu executar o mesmo código assim:
$("#message").load("conversation.php?link=projects/livingroom/room");
Isso vai funcionar bem. A única diferença entre essas duas linhas é que, na primeira, há um espaço na obra (sala de estar) e na segunda linha não há espaço na palavra (sala de estar).
O que esta acontecendo aqui. Por que .load () exibe erro quando colocar espaço e nenhum erro sem espaço?
Respostas:
1 para resposta № 1Se, como aponta Matt Ball nos comentários acima, $ .load () tem uma interpretação especial para o URL que você não precisa, então eu recomendo substituir $.load()
com algo que melhor se adapte aos requisitos. Neste caso, um $ .get () Isso inclui o callback adequado é mais adequado às suas necessidades.
Neste caso, é claro que parte do problema é a URL incluindo espaços.
Mas a parte do URL que inclui os espaçosestá nos parâmetros de dados, que para melhor consistência e confiabilidade devem ser fornecidos como parâmetros para as funções do jQuery, em vez de tentar construir o URL a partir dos parâmetros.
$.get("conversation.php",
{link: "projects/living room/room"},
function(data){ $("#message").html(data) }
);