解析ServerUrl在JS客户端

时间:2016-03-20 11:39:54

标签: parse-platform parse-server

我将我的应用程序移动到我自己的服务器上,除了一个小问题外,一切都很好用:我将服务器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' Accept-Language:de-DE,de; q = 0.8,en-US; q = 0.6,en; q = 0.4,fr; q = 0.2' -H'用户代理: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'内容类型:text / plain' -H'接受: / ' -H'缓存控制:无缓存' -H' Referer:http://0.0.0.0:8080/' -H'连接:保持活力' --data-binary' {" where":{}," order":" title"," _method":& #34; GET"" _ApplicationId":" 0B5jvlihE6yxQed1w9vRSRW0DRldy3fbwqaCjpyF"" _JavaScriptKey":" mJid6m5wPuWICUNhqm6KrG83pWudt2Y3pumEiaY2"" _ClientVersion&# 34;:" js1.6.7"" _InstallationId":" be5bdfe1-ed0c-60bf-0d49-c5fcfdefad29"}' --compressed

我的Parse服务器不理解这些,但很清楚这些:

  

curl' http://www.jobninja.eu:1337/parse/classes/Category' -H' Pragma:no-cache' -H'原产地:http://0.0.0.0:8080' -H'接受编码:gzip,deflate' -H' Accept-Language:de-DE,de; q = 0.8,en-US; q = 0.6,en; q = 0.4,fr; q = 0.2' -H'用户代理: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'内容类型:text / plain' -H'接受: / ' -H'缓存控制:无缓存' -H' Referer:http://0.0.0.0:8080/' -H'连接:保持活力' --data-binary' {" where":{}," order":" title"," _method":& #34; GET"" _ApplicationId":" 0B5jvlihE6yxQed1w9vRSRW0DRldy3fbwqaCjpyF"" _JavaScriptKey":" mJid6m5wPuWICUNhqm6KrG83pWudt2Y3pumEiaY2"" _ClientVersion&# 34;:" js1.6.7"" _InstallationId":" be5bdfe1-ed0c-60bf-0d49-c5fcfdefad29"}' --compressed

这两个请求之间的唯一区别是,在第二个请求中,我删除了网址中的/1/

你知道我在JS部分错过了什么导致了这个错误吗?

顺便说一句,我将JSParseSDK升级到最新版本,并在serverUrl变量中使用和不使用斜杠的版本。

4 个答案:

答案 0 :(得分:2)

问题是/ parse / 1

我认为您使用了解析服务器示例作为参考,并且它在/ parse中安装了解析API(而不是/ parse / 1)。因此,您必须更改所有请求/解析或更改您的解析服务器以在/ parse / 1中挂载解析api

答案 1 :(得分:0)

客户端密钥不是必需的,javascript可以在没有它的情况下工作,也就是你在serverURL之后缺少一个分号...这似乎不是Javascript的问题,但是对于你的服务器,检查服务器上的index.js < / p>

答案 2 :(得分:0)

使用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
  },

答案 3 :(得分:0)

我遇到了这个问题,因为我使用的是旧版本的parse.com代码。 显然,http://www.parsecdn.com/js/parse-1.2.13.min.js处的版本会自动将/ 1 /附加到您提供的网址上。将其更改为使用版本1.6.14(https://parse.com/apps/quickstart#parse_data/web/existing推荐的版本)修复了问题。