【发布时间】:2017-02-18 12:20:24
【问题描述】:
我试图调用 REST Web 服务从数据库中获取数据并将 JSON 对象返回给 ReactJS 应用程序。当我从浏览器访问 URL 时,它会显示 JSON 对象,但是当我尝试在其中呈现数据时表格没有内容显示。
我的示例代码如下所示
import React from 'react';
import $ from 'jquery';
export default class Members extends React.Component {
constructor(props) {
super(props);
this.state = { users: [] };
}
componentDidMount() {
$.ajax({
url: "http://localhost:8080/users"
}).then(function(data) {
this.setState({
users:data
});
});
}
render() {
return (
<UsersList users={this.state.users}/>
)
}
}
class UsersList extends React.Component {
render() {
var users = this.props.users.map(users =>
<User key={user._links.self.href} user={user}/>
);
return (
<table>
<tbody>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
{users}
</tbody>
</table>
)
}
}
class User extends React.Component {
render() {
return (
<tr>
<td>{this.props.user.firstName}</td>
<td>{this.props.user.lastName}</td>
</tr>
)
}
}
这是异步加载的问题吗?
【问题讨论】:
-
请问
consolecomponentDidMount中的数据是什么?数据是什么? -
跨源请求被阻止:同源策略不允许读取localhost:8080/users 的远程资源。 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。这是控制台输出
-
您使用哪种服务器端语言?如果是 nodejs 和 express 使用 npmjs.org/package/cors 包
标签: json web-services rest reactjs