迁移到 Parse-Server 后解析中的 REST-API 问题

Issues with REST-API in parse after migrating to Parse-Server

我正在尝试将 Parse-server 迁移到 Debian Server,但我 运行 遇到了 REST-API 的一些麻烦。当我尝试调用我的应用程序的登录功能时,我收到以下错误:Cannot POST /parse/login.

这些是我在收到服务器错误之前成功执行的步骤。

  1. 已在 Debian 中安装 Parse-Server
  2. 安装了云代码并将我的代码添加到文件main.js
  3. 我的云代码包含一个登录功能,我成功​​调用了 curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/functions/login'
  4. 最后一步是调用 REST-API,这给了我一个 Cannot POST /parse/login 错误。我用 curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/login'
  5. 来称呼它

This 是我遵循的迁移指南 This 是我遵循的 REST-API 指南。

谁能帮我解决这个服务器错误?

正确。登录需要 GET 方法而不是 POST

通过对 URL 执行简单的 GET,您应该会看到以下错误。显然你需要传递你的参数才能成功。

 {
        "code": 200,
        "error": "username is required."
    }

删除 -d '{}' 会将 curl 恢复为 GET

根据所提供的信息,这个答案是我能做的最好的回答。问题很可能是应用程序期待 GET 请求(或 POST 以外的某些其他 HTTP 方法),但您的 curl 请求发送 POST 请求。

要查看 curl 发送的内容,您可以添加 -v(我输入 example.com 只是为了让服务器响应)

$ curl -v -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'example.com/serverName/parse/login'
*   Trying 2606:2800:220:1:248:1893:25c8:1946...
* TCP_NODELAY set
* Connected to example.com (2606:2800:220:1:248:1893:25c8:1946) port 80 (#0)
> POST /serverName/parse/login HTTP/1.1
> Host: example.com
> User-Agent: curl/7.51.0
> Accept: */*
> X-Parse-Application-Id: <id1>
> Content-Type: application/json
> Content-Length: 2

login function in the API guide 需要 GET 请求:

To do this, send a GET request to the /1/login endpoint with username and password as URL-encoded parameters:

我假设在迁移过程中您还升级到更新的 parse.com 应用程序并且接受了旧版本 POST 而更新的版本不接受。

您需要将 curl 请求更改为使用 GET 而不是 POST。只需关注 the example provided。删除 -d 参数并添加 --data-urlencode 参数