Parse ServerUrl дает мне ошибку 404 на клиенте JS

Я перемещаю свое приложение на свой собственный сервер, и все работает замечательно, за исключением одной маленькой проблемы: я добавил URL-адрес сервера в JS следующим образом:

Parse.initialize("0B5jvlihE6yxQed1w9vRSRW0DRldy3fbwqaCjpyF", "mJid6m5wPuWICUNhqm6KrG83pWudt2Y3pumEiaY2");
Parse.serverURL = 'http://www.jobninja.eu:1337/parse'

И все в порядке, НО делает запрос так:

curl 'http://www.jobninja.eu:1337/parse/1/classes/Category' -H 'Pragma: no-cache' -H 'Происхождение: http://0.0.0.0:8080' -H 'Принять-кодировку: gzip, deflate' -H 'Принять-язык: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,fr; q=0.2' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/49.0.2623.87 Safari/537.36' -H 'Content-Type: text/ plain' -H 'Принять: /' -H 'Управление кешем: no-cache' -H 'Реферер: http://0.0.0.0:8080/' -H 'Соединение: keep-alive' --data-binary '{"where":{},"order":"title", "_method":"GET","_ApplicationId":"0B5jvlihE6yxQed1w9vRSRW0DRldy3fbwqaCjpyF","_JavaScriptKey":"mJid6m5wPuWICUNhqm6KrG83pWudt2Y3pumEiaY2","_ClientVersion":"js1.6.7","_InstallationId":"be5bdfe1-ed0c-60bf-0d49-c5fcfdefad29"} ' -- сжатый

И мой сервер Parse не понимает эти, но очень хорошо понимает эти:

curl 'http://www.jobninja.eu:1337/parse/classes/Category' -H 'Прагма: без кеша' -H 'Происхождение: http://0.0.0.0:8080' -H 'Принять-кодировку: gzip, deflate' -H 'Принять-язык: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/49.0.2623.87 Safari/537.36' -H 'Content-Type: text/plain' -H 'Принять: /' -H 'Cache-Control: no-cache' -H 'Referer: http://0.0.0.0:8080/' -H 'Соединение: keep-alive' --data-binary '{"where":{},"order":"title","_method": "GET","_ApplicationId":"0B5jvlihE6yxQed1w9vRSRW0DRldy3fbwqaCjpyF","_JavaScriptKey":"mJid6m5wPuWICUNhqm6KrG83pWudt2Y3pumEiaY2","_ClientVersion":"js1.6.7","_InstallationId":"be5bdfe1-ed0c-60bf-0d49-c5fcfdefad29"}' --compressed

Единственная разница между двумя запросами заключается в том, что во втором я удалил /1/ в URL-адресе.

Знаете ли вы, что я пропустил в части JS, что приводит к этой ошибке?

Кстати, я обновил JSParseSDK до последней версии и попробовал версию с косой чертой и без нее в переменной serverUrl.


person Laurent Meyer    schedule 20.03.2016    source источник


Ответы (4)


Проблема в /parse/1

Я думаю, что вы использовали пример сервера синтаксического анализа в качестве эталона, и он монтирует API синтаксического анализа в /parse (а не /parse/1). Поэтому вам нужно изменить все свои запросы на /parse или изменить сервер синтаксического анализа, чтобы смонтировать API-интерфейс parse в /parse/1.

person Davi Macêdo    schedule 21.03.2016
comment
У меня также есть эта проблема @davi-macêdo, не могли бы вы немного пояснить мне, как избавиться от /1 ? - person Aubrey; 19.04.2016
comment
Если вы используете Parse Server для запуска своего бэкенда вместо parse.com, вам больше не нужно использовать /1/ в своих запросах. Например, вместо yourdomain.com/parse/1/classes/MyObject используйте только yourdomain.com/parse/classes/MyObject - person Davi Macêdo; 25.04.2016

ключ клиента не требуется, javascript может работать без него, также вам не хватает точки с запятой после serverURL... Это не похоже на проблему с Javascript, но с вашим сервером, проверьте index.js на сервере

person Mazel Tov    schedule 20.03.2016
comment
Нет, у меня ошибка, это SDK для синтаксического анализа, который я использовал, был неподдерживаемым форком на Bower. - person Laurent Meyer; 20.03.2016

Ключ клиента больше не нужен при использовании parse-server

Код клиента:

//Initialize my Local Host App
Parse.initialize("app");
Parse.serverURL = 'http://localhost:1337/parse';

Код сервера:

var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'app',
  masterKey: process.env.MASTER_KEY || 'master', //Add your master key here. Keep it secret!
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  // Don't forget to change to https if needed
  liveQuery: {
    classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
  },
person tanz    schedule 10.06.2016

У меня была эта проблема, потому что я использовал старую версию кода parse.com. По-видимому, версия на http://www.parsecdn.com/js/parse-1.2.13.min.js автоматически добавляет /1/ к указанному вами URL-адресу. Изменение его для использования версии 1.6.14 (версия, рекомендованная на https://parse.com/apps/quickstart#parse_data/web/existing) устранили проблему.

person JohnT    schedule 10.06.2016