JQuery + ajax + json无法显示响应

时间:2016-02-19 09:11:04

标签: php jquery json ajax

我试图做一些像用户点击按钮的事情,它向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

看起来我无法进入功能

3 个答案:

答案 0 :(得分:0)

在该行包含console.log('called');之前的insertText()函数中写$.ajax({

所以你可以看到这个函数是否在点击时被调用。

如果Developer Tools的Console选项卡抛出JavaScript错误,这可能会进一步阻止JavaScript执行。

答案 1 :(得分:0)

用单引号替换双引号。

网址应为

网址:&#39; https://myserver.com/jsons.php?request=getTargets&tar=&#39; +文字+&#39;&amp; bar =&#39; + text2

答案 2 :(得分:0)

我是怎么做到的:

<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>

希望它可以帮助别人!