jquery .get没有返回正确的值

时间:2013-10-14 18:37:57

标签: jquery

下面函数中的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");

2 个答案:

答案 0 :(得分:0)

我建议您确保服务器正在为JSON设置正确的Content-Type标头(请参阅What is the correct JSON content type?)。

根据the jQuery documentation

  

注意:我们必须确保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对象。