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得不到返回数据的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 返回 $.getJSON 值

请怎么用$.getJSON返回数据中的内容

jQuery $.getJSON 不返回键值对

$.getJSON 在 IE8 中返回缓存数据

asp.net mvc 3.0 前台getJson方法获取不到后台的数据,调试的时候后台已经有数据返回了

Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结