Модуль Perl Ajax возвращает свой программный код вместо желаемых данных в JavaScript - PullRequest
0 голосов
/ 08 июля 2019

Я написал HTML-код, который вызывает Perl ajax-модуль и должен возвращать вывод JSON.Но вместо этого он возвращает весь программный код ajax.Пожалуйста, предложите причину

index.html кодов ниже:

<!DOCTYPE html>
<html>

<head>
    <title>Testing ajax</title>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
    <meta content="utf-8" http-equiv="encoding">
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

    <script>

        var xhttp = false;
        if (window.XMLHttpRequest) {
            xhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        $(document).ready(function() {

            $("#test").click(function() {

                var url = "./ajax.pl";
                var data = '';
                xhttp.open('POST', url, true);
                xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                if (xhttp.overrideMimeType) {
                    xhttp.overrideMimeType("application/json");
                }
                xhttp.send(data);
                xhttp.onreadystatechange = function() {
                    alert("Inside function dispData()");
                    if (xhttp.readyState == 4 && xhttp.status == 200) {
                        var response = xhttp.responseText;
                        alert("response="+response);
                    }
                };

            });
        });

    </script>
</head>

<body>
    <button id="test">Testing</button>
</body>

</html>

Perl Ajax код ajax.pl, как показано ниже:

#!/usr/bin/perl

use CGI;
use JSON::PP qw( encode_json );
my $cgi = CGI->new;
print $cgi->header('application/json;charset=UTF-8');

my @temp = {};
my $encoded_json={};
$temp[0]{'id'} = "123";
$encoded_json = encode_json(\@temp);

print $encoded_json;

Ожидаемый результат: В окне предупреждения => responseText = {['id': '123']}

Полученный результат: Получен весь код perl в окне предупреждения => responseText = #! / usr / bin / perl

использовать CGI;используйте JSON ::

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...