jQuery Ajax GET请求工作不正常


jQuery Ajax GET request not working correctly

我正在尝试调用AJAX查询,最近遇到了很多问题。我试图调用我自己定制的api,当url api/reverse/test-tset(只是使用php函数来反转slug3中给出的文本)时,它会显示这一点。

该功能运行良好,只是想对请求的内容进行一些反馈。

reverse.php-HTML文件

<textarea id="input"></textarea>
<div id="output">
</div>

index.js-我所有的jQuery和AJAX

$(document).ready(function(){
  var $input = $('#input');
  var $output = $('#output');
  $input.on('keyup', function(){
    var text = $input.val();
    var url = 'http://coder.jekoder.com/api/?area=reverse&text='+text;
      $.ajax({
        type: 'GET',
        url: url,
        dataType: 'text',
        success: function(data) { var output = data; },
        error: alert('fail')
  }) // End of AJAX
  $output.html = output;
 });
});

api.php-被称为的php文件

<?php
  $area = $_GET['area'];
  if ($area == 'reverse') {
    if (isset($_GET['text']) ) $text = $_GET['text'];
      else $text = 'Hello';
    echo strrev($text);
  }

然后,它应该获取output变量并将其显示在div中,但这并不是最重要的事情。

错误已删除-正在尝试查看是否已修复

我发现了几个问题:

Jquery:

       var text =  $('#input').val(); // if you are getting value from any inputbox - get value using .val() function
        var url = 'http://localhost/test.php?data='+text; // pass data like this ?data='+text
        // AJAX START
        $.ajax({
          type: 'GET',
          url: url,
          dataType: 'text',
          async: true,
          success: function(data) { var output = data;  alert(output)},
          error: function(data) { alert('fail') }
        });

在php中,你可以得到这样的数据:

echo $_GET['data'];
exit;

试试这个。变量output的作用域在success调用中,您在ajax调用之外使用它。

$(document).ready(function()
{
    var $input = $('#input');
    var $output = $('#output');
    $input.on('keyup', function()
    {
         var text = $input.val();
         var url = 'http://coder.jekoder.com/api/?area=reverse&text='+text;
         $.ajax({
            type: 'GET',
            url: url,
            dataType: 'text',
            success: function(data) { var output = data; $output.html = output;},
            error: alert('fail')
       }) // End of AJAX

    });
});