0

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

2 回答 2

0

我建议您应该确保您的服务器正在为 JSON 设置正确的 Content-Type 标头(请参阅什么是正确的 JSON 内容类型?)。

根据jQuery 文档

注意:我们必须确保 Web 服务器报告的 MIME 类型与我们选择的dataType.

因此,我建议使用 FireBug 或 Chrome 的网络流量调试器,以确认正在发送正确的 Content-Type(并查看从服务器返回的实际数据)。如果您使用正确的 Content-Type,Chrome 至少会在网络选项卡中显示漂亮的 JSON。

于 2013-10-14T19:10:19.440 回答
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 因为 data 不是 javascript 对象。

于 2013-10-14T20:23:14.707 回答