为什么我的jQuery AJAX调用在浏览器中打开响应?

时间:2012-09-28 08:07:29

标签: php javascript jquery ajax

我对PHP,Javascript,jQuery等全新。所以我发现这非常令人困惑。

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

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

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

由于

2 个答案:

答案 0 :(得分: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
});

答案 1 :(得分: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. 考虑@Mihai Stancu的答案(应该是0号,实际上是:))