下面函数中的jquery ajax get调用应该将一些参数传递给test.php,让test.php根据这些参数执行一些测试,并将(jason编码的)测试结果(status_general)返回给.get ()。但是,下面代码中的console.log调用显示未定义的值,而我的php调试器显示test.php返回正确的jason编码测试结果。我的.get代码基于http://api.jquery.com/jQuery.get的示例5。
有什么建议出错/如何解决?在此先感谢您的帮助。
代码:
$.get( "test.php", { command: "test", val1: ipaddress, val2: "" })
.done(function(data) {
var test_result = data.status_general;
console.log('test result: '+test_result);
},"json");
答案 0 :(得分:0)
我建议您确保服务器正在为JSON设置正确的Content-Type标头(请参阅What is the correct JSON content type?)。
注意:我们必须确保Web服务器报告的MIME类型与我们选择的
dataType
匹配。
因此,我建议使用FireBug或Chrome的网络流量调试程序,以确认正在发送正确的Content-Type(以及查看从服务器返回的实际数据)。如果您使用正确的内容类型,Chrome至少会在网络标签中向您显示漂亮的JSON。
答案 1 :(得分:0)
您的PHP页面未返回有效的json(基于您所说的评论)。为了让jquery解析json,它不能包含任何其他东西(即html标签)。也是发送数据类型json头的好主意。
http://www.caveofprogramming.com/php/php-json-an-example-javascript-json-client-with-php-server/
data.status_general返回undefined,因为数据不是javascript对象。