我对基于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>
感谢您提供任何建议。
答案 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是您文件位置的正确关系网址。
如果您直接导航到/get-data.html,它是否会产生您所追求的结果。
尝试运行相同的代码而不使用&#39; json&#39;并查看它是否有效。
希望这会有所帮助