JQuery AJAX $ .post无法返回数据

时间:2015-01-02 13:31:37

标签: javascript php jquery ajax

我对基于PHP的处理器的特定JQuery $ .post调用有困难。我创建了一个测试页面,其中包含以下代码:http://goo.gl/Bg7H2u

请注意,它位于子域中,但我们不会进行跨域发布。所有内容都应包含在子域中。

错误控制台中报告的似乎没有任何JS错误。

处理器/get-data.html是通用的PHP处理器,如果您使用正确的值加载处理器页面,它将以JSON格式从MySQL数据库返回数据集。我们在主域上工作没有问题,其他$ .post调用似乎可以从这个子域工作(不是这个/get-data.html处理器,而是处理表单内容的其他处理器)。

请在此处查看实际的处理器输出:http://goo.gl/yOzrm2

我一定是错过了一些明显的东西,但我空洞无物。想法?

以下是代码:

<!DOCTYPE html> 
<html>
<head>
<meta name="viewport" content="width=320px, initial-scale=1">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
var prices;
$(document).ready(function(){
    $.post( "/get-data.html", { table: 'prices' }, 
        function( data ) { 
            prices = data;
            alert(prices);
        }, 'json');
}); 
</script>
</head>
<body>
    <div style="overflow-x: hidden;" id="divMain">

    </div>
</body>
</html>

感谢您提供任何建议。

2 个答案:

答案 0 :(得分:0)

如果您在处理器输出上执行View Source,则会看到您的脚本正在返回:

<p>{"Basic Plan":["349"],"Basic":["349"],"Premium Plan":["549"],"Premium":["549"],"Standard Plan":["429"],"Standard":["429"],"Bonus Plan":["175"],"Additional Central AC System":["99"],"Additional central heating system":["99"],"Central Vacuum":["99"],"Whole home humidifier":["49"],"Pool (in-ground)":["179"],"Spa (in-ground)":["179"],"Septic System":["99"],"Sump Pump":["99"],"Well pump":["99"],"Whole home water softener":["99"],"Lawn sprinkler system (in-ground)":["99"],"Wine refrigerator":["49"],"Ice maker (free standing)":["49"],"Home phone (unlimited)":["49"],"TV Protection (Flat screen up to 60 inches)":["99"],"PC Protection (laptop or desktop)":["49"]}</p>

开头有<p>,结尾有</p>。这不是有效的JSON。您需要修复服务器脚本,以便它不会打印除JSON之外的任何内容(空白就行了,就是这样)。

答案 1 :(得分:0)

1.确认/get-data.html是您文件位置的正确关系网址。

  1. 如果您直接导航到/get-data.html,它是否会产生您所追求的结果。

  2. 尝试运行相同的代码而不使用&#39; json&#39;并查看它是否有效。

  3. 希望这会有所帮助