从 Javascript 连接到 parse-server - 400 禁止访问

Connecting to parse-server from Javascript - 400 Forbidden

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

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

如果我在 Heroku 上托管后端,它会起作用,这让我认为问题在于 Javascript 中的 Parse 寻找 https link。这就是我在 Javascript:

中加载解析的方式
var Parse = require('parse')
Parse.initialize('appID', 'javascriptKey')
Parse.serverURL = 'http://localhost:1337/parse'

大多数解决方案都是在浏览器请求中添加"X-Parse-Application-Id"和"X-Parse-Master-Key"headers,但请求是通过JavascriptAPI进行的。

我该如何解决这个问题?

您收到的 403 是对未授权请求的正常响应。在这种情况下,您需要正确传递设置所需的 headers 以通过进行身份验证。在 docs rest guide.

中可以看到一个很好的例子
# 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

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

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

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