我对Javascript函数有一个疑问。当我在textarea中插入文本时,函数使用AJAX将文本发送到PHP脚本,但是当我插入两个或三个单词(例如Bosnia and Herzegovina)时出现问题,则脚本无法正常工作。我用字符串替换:

    function provjeraDrzave(rijec) {
        rijec = rijec.replace(" ", "%20");
        $.ajax({
            type: "GET",
            url: "/drzava.php?slovo=" + randomslovo + "&drzava=" + rijec,
            success: function (odgovor) {
                $('#rezultati').replaceWith($("<span id='rezultati'>" + odgovor + "</span>"));
            },
            error: function () {
                alert('Doslo je do pogreske');
            }
        });
    }


它应如下所示:当我插入Bosnia and Herzegovina时,必须将其更改为Bosnia%20and%20Herzegovina,但将其更改为Bosnia%20and Herzegovina,这将不起作用。问题出在哪里 ??

最佳答案

例如,为什么不使用原生的encodeURIComponent函数呢?

或者,甚至更好的是,使用data配置参数让jQuery为您处理URL编码:

function provjeraDrzave(rijec) {
    $.ajax({
        type: "GET",
        data: {
            slovo: randomslovo,
            drzava: rijec
        },
        url: "/drzava.php",
        success: function (odgovor) {
            $('#rezultati').replaceWith($("<span id='rezultati'>" + odgovor + "</span>"));
        },
        error: function () {
            alert('Doslo je do pogreske');
        }
     });
}

07-27 19:54