代码之家  ›  专栏  ›  技术社区  ›  user1283776

在前端,我可以做些什么来读取对另一个域的POST请求的响应吗?

  •  0
  • user1283776  · 技术社区  · 7 年前

    我有一张表格

      render() {
        return (
          <form onSubmit={this.handleSubmit}>
            ...
          </form>
        );
      }
    

    在提交时,我发出post请求并打印响应

      handleSubmit(event) {
        axios.post('https://.../oauth2/token', {
          firstName: this.state.username,
          password: this.state.password,
          grant_type: password
        })
        .then(response => console.log(response))
    
        event.preventDefault();
      }
    

    打印的响应为

    加载失败 https://.../oauth2/token :响应 起飞前请求未通过访问控制检查:否 请求的上存在“Access Control Allow Origin”标头 资源“来源” http://localhost:3000 因此不允许 通道响应的HTTP状态代码为400。

    我知道这是为了防止饼干被滥用。但在前端我能做些什么来得到回应吗?也许我可以在请求中声明我不想使用任何cookie权限。

    1 回复  |  直到 7 年前
        1
  •  1
  •   ZombieShellback    7 年前

    请求的资源上不存在“Access Control Allow Origin”标头

    就在那里告诉我怎么了。您遇到了CORS(跨源资源共享)问题。如果您使用的是Chrome,则可以使用 extension 为了它。

    对于永久解决方案,您必须在主机服务器上启用CORS。我不能提供太多帮助,因为我不知道你的后端是什么样子。您可以尝试搜索“CORS”。就个人而言,为了简单起见,我只是在开发时使用扩展,但我只在开发AngularJS移动应用程序。