【问题标题】:Angular 2 XMLHttpRequest角 2 XMLHttpRequest
【发布时间】:2018-02-06 02:24:36
【问题描述】:

我正在尝试向 API 发出 POST 请求,但收到此错误:

XMLHttpRequest 无法加载 http://*。预检响应具有无效的 HTTP 状态代码 400 但是,当我尝试发出 GET 请求时,它可以工作。

我的get方法:

getMethod() {
    return this.http.get<PerfilModel[]>(globals.BASE_URL + 'perfis');
}

我的发帖方式:

updateMethod(changePass: ChangePassModel) {
    let h = new Headers();
    h.append('Content-Type', 'application/json');

    return this.http2.post(globals.BASE_URL + 
                           'users/passwords/redefinitions/' + 
                           changePass.key, JSON.stringify(changePass),      
                           { headers: h }
                           ).map(res => res.json);
}

观察:cors 切换插件已激活。

【问题讨论】:

    标签: angular xmlhttprequest


    【解决方案1】:

    HTTP 400 Bad Request 响应状态代码表示服务器由于语法无效而无法理解该请求。客户端不应未经修改就重复此请求。

    可能是服务器端,他们允许使用 post 方法。

    【讨论】:

    • 据我所知,服务器端是C#,你知道他们需要在服务器端做什么样的配置才能允许我的请求吗?
    • 我希望你没有在后台工作。请检查您的后端人员(服务器端)
    【解决方案2】:
    globals.BASE_URL + 'users/passwords/redefinitions/' + changePass.key + '/'
    

    如果你的后端激活了cors切换插件,你的url最后缺少“/”,你能检查一下吗

    【讨论】:

    • 你能添加你的后端 cors 头配置
    • 授权、Auth、Token、Access-Token、Access_Token、AccessToken、代码
    • 您错过了“Content-Type”,请检查一下
    • 你的后台能不能看一下这篇帖子stackoverflow.com/a/39465048/7261317
    • 好的,我会把这个传给后端的人,只要他们回答我就会回来。
    【解决方案3】:

    问题出在浏览器同源策略上,因此我使用以下标志禁用了安全性:--args --disable-web-security --user-data-dir="" 并且它起作用了。

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 2015-12-18
      • 2011-06-29
      • 2017-06-14
      • 2011-05-27
      • 1970-01-01
      • 2019-07-03
      • 2019-01-31
      • 1970-01-01
      相关资源
      最近更新 更多