关于node.js:从Javascript连接到解析服务器-禁止400

Connecting to parse-server from Javascript - 400 Forbidden

我正在尝试通过执行" npm start"在本地运行parse-server。我知道服务器在http:// localhost:1337上运行,当我在浏览器中输入此命令时,我会收到一个有效的响应。但是,当我尝试使用Javascript API连接到它时,出现以下错误:

1
POST http://localhost:1337/parse/login 403 (Forbidden)

如果我将后端托管在Heroku上,则可以使用它,这使我认为问题在于Javascript中的Parse寻找https链接。这是我在Javascript中加载解析的方式:

1
2
3
var Parse = require('parse')
Parse.initialize('appID', 'javascriptKey')
Parse.serverURL = 'http://localhost:1337/parse'

大多数解决方案都涉及在浏览器请求中添加" X-Parse-Application-Id"和" X-Parse-Master-Key"标头,但是该请求是通过Javascript API进行的。

我该如何解决?


您收到的403是未经授权的请求的正常响应。在这种情况下,您需要正确传递设置所需的标头以通过进行身份验证。在文档rest指南中可以看到一个很好的例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Signup a new user
curl -X POST \\
  -H"X-Parse-Application-Id: app-id-here" \\
  -H"X-Parse-REST-API-Key: ${REST_API_KEY}" \\
  -H"X-Parse-Revocable-Session: 1" \\
  -H"Content-Type: application/json" \\
  -d '{"username":"cooldude6","password":"p_n7!-e8","phone":"415-392-0202"}' \\
  http://localhost:1337/parse/users


# Login as user
curl -X GET \\
  -H"X-Parse-Application-Id: app-id-here" \\
  -H"X-Parse-REST-API-Key: ${REST_API_KEY}" \\
  -H"X-Parse-Revocable-Session: 1" \\
  -G \\
  --data-urlencode 'username=cooldude6' \\
  --data-urlencode 'password=p_n7!-e8' \\
  http://localhost:1337/parse/login

请注意在标头中传递的appId和restKey,如果它们正确(并且服务器设置为需要REST密钥),您将获得不同的400响应。

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

这只是从文档中提取的,所以我建议您从那里开始。此外,我们也有一些方便的JS文档。