我正在尝试使用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!
答案 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代码中加载和使用。