使用JQuery发送的JSON数据不能正常工作

时间:2010-11-24 14:23:29

标签: php jquery json

我有这段代码使用JQuery将JSON数据发送到php文件,但它不起作用。它在控制台中没有显示错误但不输出。如果我使用var_dump,它会在php文件中输出array(0){}。这是JQuery代码:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

<html>
<?php
   function searchResults($q) {
    $host = "http://search.twitter.com/search.atom?q=" . urlencode( $q ) . "&rpp=100";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $host);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    //Raw xml
     $result = curl_exec($ch);
     curl_close($ch);
     $xml = simplexml_load_string($result);
     return json_encode($xml);
     } 
   ?>
   <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js">
    </script>
    </head>
    <body>
    <script type="text/javascript"> var msg_top = <?php echo   
    searchResults('windows');?>;
    </script>
    <script type="text/javascript">
    $(document).ready(function() 
    {
     $.ajax({
     url: "script.php",
     type: "POST",
     dataType: "json",
     data: msg_top,
     success: function(){
     alert("success");
     }
    });
   alert("failure");
   });
  </script>
 </body>
</html>

这是我的php代码:

    <?php
     var_dump($_POST);
    ?>

3 个答案:

答案 0 :(得分:0)

data: "msg_top",

应该没有引号:

data:msg_top,

答案 1 :(得分:0)

在这一行:

var msg_top = <?php echo searchResults('windows');?>;

制作字符串json:

var msg_top = JSON.parse("<?php echo searchResults('windows');?>");

以及 data: msg_top

答案 2 :(得分:0)

你试过吗

$msg = json_decode(stripslashes ($_POST['msg_top']), true);