jquery getjson得不到返回数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery getjson得不到返回数据相关的知识,希望对你有一定的参考价值。
$.getJSON(_url+"Operahtml.jsp?callback=?",_cmd:'query',function(result)
var dataObj=result;
$.each(dataObj,function()
if(this.status=="start")
$("#"+id+"_html").val("关").one("click",close_html);
else if(this.status=="close")
$("#"+id+"_html").val("开").one("click",start_html);;
);
);
function里面的代码不运行,但是这个请求的返回状态是200
要知道运行不运行,先在function里面alert(1);
ajax的调试最好用Firefox装上firebug,在网络选项里面有XHR选项,那里很清楚的记录了ajax的请求及响应 参考技术A 你要的什么开发语言?java?
我不太清楚你的json(totalNum) json格式化后是什么信息。但是应该是符合json格式的才行。举个例子返回的是这样格式的话,
alert(json.totaNum) 就是 aaa
返回的是["aaa"]的话
alert(json[0])就是aaa
NodeJS 不会将数据返回给 jQuery.getJSON
【中文标题】NodeJS 不会将数据返回给 jQuery.getJSON【英文标题】:NodeJS won't return data to jQuery.getJSON 【发布时间】:2011-03-18 17:25:12 【问题描述】:我已经设置了 NodeJS,当我浏览到 URL 时它正在返回数据:http://184.106.206.235
但是,当我尝试使用 $.getJSON
调用该 URL 时,回调显示 null
代表 data
变量和 "success"
代表 textStatus
变量。
我想这可能是一个跨域的事情,但我很惊讶textStatus
说"success"
如果是这样的话。
如果有帮助,这里是服务器端 JS:
http.createServer(function(req, res)
var output = message: "Hello World!";
var body = JSON.stringify(output);
res.writeHead(200, 'Content-Type': 'application/json', 'Content-Length': body.length);
res.end(body);
).listen(80, "184.106.206.235");
有什么想法吗?
【问题讨论】:
JavaScript 是否托管在http://184.106.206.235
上?
是的,虽然我正在尝试使用托管在不同域上的“客户端”JS 来访问它。
那是你的问题。什么“文本状态”?
如果您查看api.jquery.com/jQuery.getJSON 的回调,您会发现它应该返回“data”和“textStatus”对象。
【参考方案1】:
对于遇到同样问题的人来说,只是一个注释,上面的解决方案对我有用,只是做了一个小改动:
“内容类型”:“应用程序/json”
不是“文本/json”。
感谢您的解决方案!这让我发疯了。
【讨论】:
【参考方案2】:将 "Access-Control-Allow-Origin": "*" 属性添加到您的 writeHead() 调用中:
res.writeHead(200,
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
);
【讨论】:
json数据的内容类型应该是application/json,见问题***.com/questions/477816/the-right-json-content-type【参考方案3】:如果您使用的是express 框架,您可以尝试以下方法之一:
1.res.contentType('json');
设置为内容类型。
2. res.send( some: 'json' );
将设置内容类型并为您解析。
3. res.json( user: 'tj' );
可能是最好的方法。
希望对你有帮助:)
【讨论】:
以上是关于jquery getjson得不到返回数据的主要内容,如果未能解决你的问题,请参考以下文章