【问题标题】:Directus HTTP PUT Method Not Allowed不允许使用 Directus HTTP PUT 方法
【发布时间】:2019-06-17 08:38:13
【问题描述】:

嘿,我在浏览器中使用 Directus 和 Ionic 3,但我遇到了 HTTP PUT 问题。

错误:

错误:{代码:6,消息:“方法不允许”}

原型:对象

headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, 惰性初始化:ƒ}

message: "Http 失败响应 http://example.com/backend/api/public/_/users?single=1&access_token=myToken&filter[id]=50: 405 方法不允许”

名称:“HttpErrorResponse”

好的:错误

状态:405

statusText:“方法不允许”

网址: "http://example.com/backend/api/public/_/users?single=1&access_token=myToken&filter[id]=50"

这是我的代码:

    updatePwd(user:any, userId: any){
    return this.api.put('users?single=1&access_token=myToken&filter[id]='+userId,user).map((res: any) => {
      return res;
    });
  }

POST 和 GET 就这样工作得很好

    newUser(user:any){
    return this.api.post('users?access_token=myToken',user).map((res: any) => {
      return res;
    });
  }

getUser(email:any){
    return this.api.get('users?single=1&access_token=myToken&filter[email]='+email).map((res: any) => {
      return res;
    });
  }

我是 Directus 的新用户,对它了解不多。那么这里有什么问题呢?我必须配置一些东西还是什么?

提前致谢:)

编辑: 我用 PATCH 试过了,效果很好^^

    updatePwd(userId: any, user:any){
    return this.api.patch('users/'+userId+'?&access_token=myToken',user).map((res: any) => {
      return res;
    });
  }

【问题讨论】:

  • 这可能是您尝试连接的 Web 服务器上的安全设置。我不知道其他服务,但我过去使用过 IIS,默认情况下 PUT 和 DELETE HTTP 动词被阻止。您可能需要联系负责服务器的人员来为您打开它。或者,如果您是设置服务器的人,请更新设置以允许 PUT 和 DELETE。
  • @CodeMonkey 感谢您的回复,我是设置服务器的人,但是如何允许 PUT 和 DELETE??
  • 取决于您使用的服务器。如果您在 IIS 上使用 .NET,请检查 this issue,如果是 apache,请检查 try this
  • @CodeMonkey 谢谢,我会试试这个解决方案,我会回来的^^
  • @CodeMonkey 嘿,我试过 Rijk 回复,它对我有用,谢谢你们两个^^

标签: rest ionic3 http-put directus


【解决方案1】:

Directus 使用 PATCH 而不是 PUT 来更新行:https://docs.directus.io/api/reference.html#update-user

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 2019-09-13
    • 2019-10-28
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2013-08-21
    相关资源
    最近更新 更多