jQuery的getJSON不工作
我想从服务器使用jQuery $.getJSON
得到一些数据,并且代码似乎工作正常,直到它到达$.getJSON
,它似乎并没有触发,根本没有,没有控制台日志,当我按下按钮,这里是下面的代码,jQuery的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提前!
如果您使用的调试:
- >火狐浏览器:打开Firebug,并期待在Net标签,使确定请求正在触发,并查看来自服务器的响应是什么。
- > IE:启动Fiddler2查看请求/响应。
- > Chrome:使用资源选项卡。
一旦你看到服务器返回什么(如果有的话),你可以找出如何继续。
我正在使用萤火虫,没有什么是射击,重新启动后它刚刚工作,再次Windows失败,但thanx的所有帮助!欣赏它! – Odyss3us 2010-10-27 07:34:01
我认为getJSON正在崩溃,因为服务器没有返回好的JSON语法。
尝试在你的PHP文件做
echo json_encode($weo);
。如果不最终希望使用JSON,但纯文本,而应使用$.get
:
$.get('test.php', {query: funk}, function(data){
console.log(data)
});
还是什么都没有,我也没有收到任何错误信息,这真是奇怪! – Odyss3us 2010-10-26 13:38:41
做什么Soslo说;-) – lonesomeday 2010-10-26 13:45:39
肯定你的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等有更深入的了解的问题是什么。
我有同样的问题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代码中使用。
你确定呼叫正在到达服务器吗?我会先剥离代码并传递一个硬编码的“funk”值来追踪问题。此外,如果服务器抛出一个错误(例如HTTP状态400),那么成功函数将不会被调用,并且您不会在控制台上看到您的日志(尽管您可能会看到一个错误被记录?) – 2010-10-26 13:45:38