迁移到 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
.
这些是我在收到服务器错误之前成功执行的步骤。
- 已在 Debian 中安装 Parse-Server
- 安装了云代码并将我的代码添加到文件
main.js
。
- 我的云代码包含一个登录功能,我成功调用了
curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/functions/login'
。
- 最后一步是调用 REST-API,这给了我一个
Cannot POST /parse/login
错误。我用 curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/login'
来称呼它
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
参数
我正在尝试将 Parse-server 迁移到 Debian Server,但我 运行 遇到了 REST-API 的一些麻烦。当我尝试调用我的应用程序的登录功能时,我收到以下错误:Cannot POST /parse/login
.
这些是我在收到服务器错误之前成功执行的步骤。
- 已在 Debian 中安装 Parse-Server
- 安装了云代码并将我的代码添加到文件
main.js
。 - 我的云代码包含一个登录功能,我成功调用了
curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/functions/login'
。 - 最后一步是调用 REST-API,这给了我一个
Cannot POST /parse/login
错误。我用curl -H "X-Parse-Application-Id: <id1>" -H "Content-Type: application/json" -d '{}' 'serverName/parse/login'
来称呼它
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
参数