Javascript-将我的游戏高分存储在JSON文件中

Javascript-将我的游戏高分存储在JSON文件中,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我正在开发一个使用Javascript和HTML5画布构建的游戏。几乎所有的事情都完成了,除了我不能部署一些允许我存储高分的功能 由于游戏只是一个包含大量Javascript文件的HTML页面,即没有数据库,我的行动计划是将所有高分存储在一个哈希表中,如- { "Bruce":100, "Alexis":84, "Megan":69, "Carlos":52 } 然后将其存储为JSON文件。每次用户加载游戏时,都会解析JSON文件,并通过迭代哈希表显示高分 但我不能让它工作。以

我正在开发一个使用Javascript和HTML5画布构建的游戏。几乎所有的事情都完成了,除了我不能部署一些允许我存储高分的功能

由于游戏只是一个包含大量Javascript文件的HTML页面,即没有数据库,我的行动计划是将所有高分存储在一个哈希表中,如-

{
  "Bruce":100,
  "Alexis":84,
  "Megan":69,
  "Carlos":52
}
然后将其存储为JSON文件。每次用户加载游戏时,都会解析JSON文件,并通过迭代哈希表显示高分

但我不能让它工作。以下是我遇到的问题-

  • jQuery的getJSON方法不允许我获取本地存储的文件。因此,我将文件存储在Github上,并将URL作为参数传递。这是正确的解决方案吗?我最终计划使用Github页面来主持这个游戏,所以我想在部署到生产环境时,我必须稍微更改一下URL

  • 在那之后,它把这个错误抛给了我

    请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”

    我环顾四周,在Chrome上安装了一个Allow控件Allow Origin extension。再说一次,这是正确的解决方案吗

  • 这就把我们带到了我现在的位置。这就是我的方法调用的样子-

  • 这个

    我在最后一行发现了这个错误-


    请求失败:parsererror,SyntaxError:意外标记,这是因为请求返回的是实际的github页面,而不是原始文件


    您可以将请求发送到raw.githubusercontent.com以获取原始文件。

    1。您必须使用
    raw.github.com/…
    (在GH上查看JSON文件时只需单击“raw”按钮),2。对于一个只支持JS的游戏来说,拥有一个高分表是一个非常糟糕的主意,因为没有任何东西可以阻止随机的人对它进行攻击,并且,根据您如何实现写操作,允许他们将任意数据写入该文件或存储库,甚至完全接管您的GitHub帐户。哎呀!我绝对不希望人们把我的Github搞砸。那么,达到高分表的更好方法是什么?我的意思是我需要将数据存储在某个地方,对吗?您可能需要将其存储在服务器端的某个地方。在您自己的服务器或服务器服务上。任何旧的服务器端语言都可以。。。但是分数本身仍然可以被破解,因为服务器无法验证它们。我可以看到我自己的得分已经达到了2147483647分:伙计们,我成功了!太多了!你们中没有一个人敢破解我游戏的高分,哈哈,jk
    $.getJSON('https://github.com/.../scores.json', function (data) {
      console.log(data);
    }).fail(function( jqxhr, textStatus, error ) {
      var err = textStatus + ", " + error;
      console.log( "Request Failed: " + err );
    });