JQuery + ajax + json 无法显示响应


JQuery + ajax + json fail to show response

我正在尝试做一些类似用户单击按钮的事情,它向 json 发送请求,我希望它显示 json 的响应,但我有一些错误,我无法弄清楚如何解决它。

.HTML:

 <a class="backLink" id="target_button" onclick="insertText('target_', 'AA', 'NN')"><div class="fa fa-external-link"></div>Show</a>

JS + ajax:

<script type="text/javascript">
    function insertText(elemID, text, text2) {
        $.ajax({
            url: "https://myserver.com/jsons.php?request=getTargets&tar="text"&bar="text2"",
            beforeSend: function (xhr) {
                xhr.overrideMimeType("text/plain; charset=x-user-defined");
            }
        })
        .done(function (data) {
            if (console && console.log) {
                console.log(data);
                var getValue = $("#" + elemID).val() == "" ? data : "";
                $("#" + elemID).val(getValue);
            }
        });
    }
</script>

不确定我是否以更好的方式做到这一点。这是一件简单的事情。用户单击按钮,使用该参数调用函数,向 json 发出请求,接收答案并将其显示在 elemID 上。谢谢

编辑:我所做的更改

<script>
            console.log('called');
            function insertText(elemID, product, country) {
                "use strict";
                console.log('called2');
                $.ajax({
                    url: 'https://myserver.com/jsons.php?request=Targ&country=" + country + "&product=" + product +".",
                    beforeSend: function (xhr) {
                        xhr.overrideMimeType("text/plain; charset=x-user-defined");
                    }
                })
                    .done(function (data) {
                        if (console && console.log) {
                            console.log(data);
                        }
                    });
                console.log('called3');
            }
            console.log('called4');
        </script>

控制台上的结果:

called
called4

看起来我无法进入功能

insertText() 函数中写console.log('called');,紧接在该行包含$.ajax({

因此,您可以看到该函数是否在单击时被调用。

如果开发人员工具的"控制台"选项卡抛出 JavaScript 错误,这也可能阻止进一步的 JavaScript 执行。

将双引号替换为单引号。

网址应为

网址: 'https://myserver.com/jsons.php?request=getTargets&tar='+ 文本 +'&bar='+ 文本2

我是如何做到的:

<script type="text/javascript">
            function insertText(elemID, p, c) {
                var server = window.location.hostname;
                $.ajax({
                    url: "https://" + server + "/jsons.php?request=Target&c=" + c + "&p=" + p +"",
                    beforeSend: function (xhr) {
                        xhr.overrideMimeType("text/plain; charset=x-user-defined");
                    }
                })
                    .done(function (data) {
                        console.log(data)
                        var tmp = data.replace('"',"");
                        var tmp2 = tmp.trim();
                        var getValue = $("#" + elemID).val() == "" ? tmp2 : "";
                        $("#" + elemID).val(getValue);
                    });
            }
        </script>

.HTML:

<a id="t_button"    onclick="insertText('t_d', '<?php $c ?>', '<?php $p ?>');" > show</a>

希望它能帮助别人!