0

我对 PHP、Javascript、jQuery 等完全陌生,所以我觉得这很令人困惑。

我写了一个回显 JSON 代码的 php 文件。然后,我尝试将此响应存储到客户端上的 Javascript 变量中,如下所示:

var res;
$.getJSON("my_php_file", { some_param: "param" },
      function(data) {
         res = data;
      }
});

相反,Web 浏览器只是在当​​前窗口中打开响应 JSON,而不是将结果保存到res. 为什么是这样?

谢谢

4

2 回答 2

5

您是否正在处理链接上的 onClick 事件?如果是这样,那么您不会停止事件传播(默认行为)。

$('a#msome_link').click(function(e) {
    e.preventDefault();

    var res;
    $.getJSON("my_php_file", { some_param: "param" },
        function(data) {
            res = data;
        }
    });

    return(false); // this is not necessary any more in modern browsers
});
于 2012-09-28T08:08:57.120 回答
0
  1. 确保my_php_file返回Content-Type: application/json; charset=<your charset>标题
  2. 提供json回调:

    my_php_file?cb=?

  3. 确保my_php_file做出适当的回应:

    printf("%s(%s)", $_GET['cb'], $json_response);

  4. consider @Mihai Stancu's answer (should be number 0, actually :) )

于 2012-09-28T08:11:09.670 回答