新手问题 【新手】请大家帮我看看,用 ajax 传出 json 问题

391117134 · 2014年10月22日 · 最后由 391117134 回复于 2014年10月22日 · 1923 次阅读

我向服务器请求 json,服务器接收到后应该返回 json,但是 js 中的回调函数就不执行,如果我将 js 中的{name:"John"}去掉就能执行,实在是不知道为什么这样。 controller 的代码: def get name = params[:name] respond_to do |format| format.json {render json:name} end end

js 代码: $.getJSON('/tests/get',{ name: "John" },function(data){ alert("success") $("#label").attr('style','visibility:visible') },‘json’);

服务器端也没报错,js 代码也没报错。

render json: { data: name }

getJSON 需要三个参数 url, data, success。你的 json 多余了。去掉了就可以了

#1 楼 @loveltyoic 感谢感谢,成功了,原来 controller 这边也要传入键值对,编译成 json 对象

#2 楼 @leeqiang data 不能传 json 吗?我就是把 json 当作 data 传递到 control 层的

getJSON 会对返回做判断的,如果格式不符合 json,不会执行 success 的 callback。 请求是没问题的。

#5 楼 @loveltyoic 哦,我说怎么执行完一点反应都没有。 Thank you.

#4 楼 @391117134 我说的 json 是那个 json 字符窜

#7 楼 @leeqiang 哦,你说的是上面那个字符串,去了也能行,但是我想把 name 的值传回来,就只能用 loveltyolc 说的的方法了,不过还是谢谢回答

需要 登录 后方可回复, 如果你还没有账号请 注册新账号