jQuery getJSON无法正常工作

时间:2010-10-26 13:26:00

标签: javascript jquery mysql

我正在尝试使用jQuery $.getJSON从服务器获取一些数据,并且代码似乎工作正常,直到它到达$.getJSON,它似乎没有触发到所有,当我按下按钮时没有控制台日志,这是下面的代码,

$(document).ready(function(){
var funk;
    $('#button').live('click', function(){
        var funk = "";
        var query = "";
        $('#wrapper > [data-custom="field"]').each(function(i, data){

            if(i == 0){
                funk = query + $(this).attr('id')+" = '"+$(this).val()+"'";
            }else{
                funk = funk + " AND " + $(this).attr('id')+" = '"+$(this).val()+"'";
            };

        }); 

        $.getJSON('test.php', {query: funk}, function(json){
            console.log(json)
        });

    });
});

PHP文件test.php在同一个文件夹中,

$weo = $_GET['query'];

echo $weo;

关于可能导致问题的任何想法?

提前Thanx!

4 个答案:

答案 0 :(得分:1)

我希望getJSON正在崩溃,因为服务器没有返回漂亮的JSON语法。

尝试

echo json_encode($weo);
在PHP文件中

。如果您最终不想使用JSON,而是使用纯文本,请使用$.get

$.get('test.php', {query: funk}, function(data){
    console.log(data)
});

答案 1 :(得分:0)

如果您正在使用调试:

- > Firefox:打开Firebug并查看Net选项卡以确保请求被触发,并查看服务器的响应。

- > IE:启动Fiddler2以查看请求/响应。

- > Chrome:使用“资源”标签。

一旦您看到服务器返回的内容(如果有的话),您就可以了解如何继续。

答案 2 :(得分:0)

确定您的Test.php没有按预期工作。要调试从服务器返回的内容,请尝试使用此代码

function AjaxDebug() {
$.ajax({
    type: "GET",
    url: "test.php",
    dataType: "jsonp",
    data: ({query: funk}),
    success: function(results) {
        alert("Success!");
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert(errorThrown);
    }
}); }

然后尝试使用错误的断点并检查XMLHttpRequest.getresponseText,getresponseXML等以更好地理解问题所在。

答案 3 :(得分:0)

我遇到了同样的问题,getJSON无法正常工作。我注意到数据已加载但无法使用。

解决方案是使用JSONP并在url querystring中添加一个回调函数变量。

 $.getJSON("http://www.example.com/test.php?callback=?",function(json){
        console.log(json);
    });

注意我们放一个?作为回调函数名称而不是实际函数名称。这是因为jQuery取代了?使用生成的函数名称(如jsonp1232617941775)调用内联函数。

在PHP中,您需要使用回调函数输出。

echo $_GET['callback'] . '(' . $jsonData . ');';
// prints: jsonp1232617941775({"name" : "Gaurav", "age" : "91"});

这将输出有效的JSONP对象,您将能够在jQuery代码中加载和使用。