【问题标题】:Unable to parse JSON from Rails server with Javascript无法使用 Javascript 从 Rails 服务器解析 JSON
【发布时间】:2015-08-12 06:05:29
【问题描述】:

我正在尝试使用 Javascript 解析从我的 Rails 服务器呈现的 JSON 数据,但是我一直面临未知错误。我刚开始使用 JS,但对 Rails 有很好的经验。

如果有人能指出我正确的方向,那就太好了!

编辑:添加代码 我正在尝试将 React 与我的 Rails 应用程序一起使用。当我尝试解析 JSON 数据时,服务器崩溃了,所以我尝试在控制台中调试并遇到同样的错误。

这是我的看法,

<%= react_component "SongsContainer", { songsPath: songs_path } %>

这是我的 React 代码,

var SongsContainer = React.createClass({
componentWillMount(){
    this.fetchSongs();
    setInterval(this.fetchSongs, 1000);
},

fetchSongs() {
    $.getJSON(
        this.props.songsPath,
        (data) => this.setState({songs: data});
    );
},

getInitialState() {
    return { songs: [] };
},

render() {
    return <Songs songs={this.state.songs} />;
}
});

而且我的控制器非常基础,

render :json => Song.first.to_json

编辑:尝试使用 getJSON 时出错,

【问题讨论】:

  • 你的 json 对我来说看起来很干净。你能用收到的json和js中操作它的代码更新问题吗?
  • 您能出示您的代码吗?
  • 我刚刚更新了我的问题。我只是想解析 JSON,然后再处理更复杂的事情。但我无法解析 JSON。
  • 不需要自己解析。由于您使用“getJSON”,jQuery 知道这一点并且已经为您完成了。 “数据”是一个对象。
  • 你能检查我更新的问题吗?

标签: javascript ruby-on-rails json


【解决方案1】:

似乎错误不在调用中,而是在语法中。 根据 getJSON jquery 文档,您应该将数据作为字符串传递。

您是否尝试过以这种方式传递参数?

fetchSongs() {
    $.getJSON(
        this.props.songsPath,
        this.setState({songs: data})
    );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2017-06-20
    • 2012-03-18
    相关资源
    最近更新 更多