使用JQuery发送到php的JSON数据不起作用

使用JQuery发送到php的JSON数据不起作用,php,jquery,json,Php,Jquery,Json,我有这段代码,可以使用JQuery将JSON数据发送到php文件,但它不起作用。它在控制台中没有显示错误,但不输出。如果我使用var_dump,它将在php文件中输出数组(0){}。以下是JQuery代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <?php function searchResult

我有这段代码,可以使用JQuery将JSON数据发送到php文件,但它不起作用。它在控制台中没有显示错误,但不输出。如果我使用var_dump,它将在php文件中输出数组(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>

var msg_top=;
$(文档).ready(函数()
{
$.ajax({
url:“script.php”,
类型:“POST”,
数据类型:“json”,
数据:msg_top,
成功:函数(){
警惕(“成功”);
}
});
警报(“故障”);
});
以下是我的php代码:

    <?php
     var_dump($_POST);
    ?>

应不加引号:

data:msg_top,

在这一行:

var msg_top = <?php echo searchResults('windows');?>;
var msg_top = JSON.parse("<?php echo searchResults('windows');?>");
var msg_top=;
将字符串设置为json:

var msg_top = <?php echo searchResults('windows');?>;
var msg_top = JSON.parse("<?php echo searchResults('windows');?>");
var msg_top=JSON.parse(“”);
数据:msg\u top
您尝试过吗

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

可能有点傻,但您是否尝试过从$u请求而不是POST中获取它?我以前就遇到过这个问题。您是否从服务器上的twitter获取数据,将其发送到浏览器,然后将其发送回服务器进行解析,然后将解析后的数据发送回浏览器?之所以使用json,是因为它可以直接在浏览器上使用,您不需要将其发送到服务器进行解析。@John Boker,实际上我需要将这些tweet存储到mysql中。在这里,我第一次尝试看看我是否正确地接收到了php脚本中。@Alex C,我试过了,但没有问题。我认为,如果var_dump不打印,则意味着在php中无法获得结果。正如我在文章中指出的,我不确定php变量是否真的传递给了js var。我第一次在web搜索中做了这件事&不知道它是否有效。我删除了引号,但结果相同。你能看到php变量分配给js变量吗,我第一次通过网络搜索做了这件事,不确定它是否正确works@JosiahRuddell,我做到了,它在控制台中引发了两个错误。首先,它在错误窗口中突出显示这个php赋值语句,所有结果显示&error')缺失第二个是数据类型中未定义Json:Json,lineI在Json周围加上引号,然后这个错误消失了,然后它说的是相同的msg_top,我也加上引号,它停止显示错误。现在php赋值语句中出现错误,看起来它是无效的json。用于验证您输出的json。@Josiah Ruddell,是的,该函数发送了无效的json,我更改了该函数,验证了其json,但仍然存在相同的错误,即错误窗口中的php赋值语句,所有结果均显示&error')缺失。从您在问题中的代码中,我看不到任何其他问题。可能是脚本标记上的type=“text/javascript”。确保您可以获取php输出的字符串并将其解析为json。是的,我尝试过,但结果相同。实际上,错误在第“var msg_top=JSON.parse(“”;”)行。在列表后面写着‘missing’。好的,我添加了addslashes()&这个错误消失了,但在php中没有结果。