AJAX请求 - 如何查看请求?

时间:2014-02-25 15:34:48

标签: javascript php jquery ajax

我试图发送一个AJAX请求,想看看我发送了什么。 但不幸的是我无法做到这一点。 如果一切正常,我将在后面填写一个select选项元素。

<script type="text/javascript">
$(document).ready(function(){
   $('select[name="domains"]').change(function(){
      var requestStr = $(this).val();

      // send Ajax request
      $.ajax({
         cache: 'false',
         type: 'POST',
         data: {select:requestStr},
         url: 'myHandler.php',
         dataType: 'json',
         success: function(data){
    var json = JSON.parse(data);                    
            alert(json.response); // Here you get the value

    if(data.status == 'success')
       alert("Thank you for subscribing!");
    else if(data.status == 'error')
       alert("Error on query!");

            var str = "<option value=''>Please Select</option>";

            //$.each(data, function(i, items){
            //   str += "<option value='"+items.id+"'>"+items.name+"</options";
            //});

            $('select[name="countries"]').html( str );
         },
         // When an error occurs, the error function is called.
     error:function(x,e){
            if(x.status==0){
               alert('You are offline!!\n Please Check Your Network.');
            }else if(x.status==404){
               alert('Requested URL not found.');
            }else if(x.status==500){
               alert('Internel Server Error.');
            }else if(e=='parsererror'){
               alert('Error.\nParsing JSON Request failed.');
            }else if(e=='timeout'){
               alert('Request Time out.');
            }else {
               alert('Unknow Error.\n'+x.responseText);
            }
         }                      
      });
   });
});

PHP处理程序看起来像这样:

<?php

require_once 'myClass.php';

if (isset($_POST['select']))
{
    // log event
$filename = "log.txt";
$fd = fopen($filename, "a");
$str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $_POST['select'];
fwrite($fd, $str . "\n");
    fclose($fd);

    $handler = new myClass();
    $dataAjax = $handler->getName($_POST['select']);
    echo json_encode($dataAjax);
}

<?php
class myClass {

   function getName($data)
   {
      return $data;
   }
}

我以为我可以使用请求参数并返回它,但我看不到任何内容。 哦,我使用Internet Explorer,所以我不能使用Firebug。

修改 我添加了几行来记录我的请求。 但是日志文件是空的。

更新 现在有了一些进展:

我可以在请求文本“select = QD”中看到这一点。 但当我用echo json_encode($dataAjax);回应它时 我收到了Error.Parsing JSON Request failed.

的错误窗口

我不明白为什么'成功'功能不起作用! 响应是json编码的。

哦顺便问一下。是不是我不能在PHP中使用“return”将我的回复发送回AJAX?

3 个答案:

答案 0 :(得分:0)

您可以在服务器端打印出请求并将其登录到文件/ syslog / etc。

答案 1 :(得分:0)

如果您只想查看headers,post,response,html,请尝试firebug

function IsJson(str) {
    try {
    JSON.parse(str);
    } catch (e) {
        return false;
    }
    return true;
}

这将检查响应是否为json

答案 2 :(得分:0)

 if (isset($_POST['countries']))
 {
    $handler = new myClass();
    $dataAjax = $handler->getName($_POST['countries']);
    echo json_encode($dataAjax);
 }

 ------------------------------------------------------

 dataType: 'json'