将JSON存储在启用CORS的后端上

时间:2015-02-04 17:35:33

标签: javascript jquery json cordova

好的,所以我经过多次尝试后来这里问过。

我的目标:

  1. 我正在为Android构建一个Phonegap应用程序,它使用了大量的JSON文件。 JSON文件的内容也经常更改。目前,我在应用程序本身提供JSON文件。但由于更改频繁,我会在PlayStore上更新它,我的用户必须每隔几天更新一次。

  2. 要解决此问题,我想在线托管JSON,以便我的应用可以在没有应用更新的情况下更新JSON(我可以使用localStorage等,但这不是真正的问题)。

    < / LI>
  3. 我想使用Parse.com的后端存储JSON文件(因为它们提供了更新数据的简便性)。我写了一段代码:

  4. $.getJSON('myurl.parseapp.com/file.json', function(json) {
        // do something here
    });
    

    我收到错误Cross Origin Request Blocked。所以我读到它并在网上说他们必须在你的服务器上启用CORS才能进行这样的访问。

    我不知道在Parse上启用它的方法。

    我也尝试过使用JSONP插件See here which one但它总是转到error状态而不是success。我在网上看了它,他们说我的网站没有返回正确的JSON(什么?)。什么是正确的JSON?这里可能会注意到我没有配置我的后端来处理回调,因为Parse没有提供这个(我猜)。

    然后,我转到了在线工具like this,它允许托管带有CORS启用后端的JSON。但主要问题是他们为我提供了JSON的URL,我有点不喜欢它,因为我的代码逻辑需要使用一些自定义名称和数字。此外,更新它有点困难。

    我以前没有和任何其他后端合作过。

    任何人都可以帮助我。

    TL; DR

    我正在寻找一个后端: 1.可以托管我的JSON文件并启用CORS。 2.允许轻松更新JSON文件。 3.自由。 :)

    感谢。

1 个答案:

答案 0 :(得分:1)

parse.com上的好人说他们已经为他们的服务启用了CORS。这篇文章就在这里 http://blog.parse.com/2012/01/19/javascript-and-user-authentication-for-the-rest-api/

&#34;首先,我们启动了对跨源资源共享的支持,以便您可以在任何站点上使用从Javascript运行的Parse。使用X-Parse-Application-Id和X-Parse-REST-API-Key标头,以便您可以在任何域上从Javascript访问Parse。&#34;

他们的api要求您在请求中包含一些标题,如下所示:

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.parse.com/1/classes/Message", true);
xhr.setRequestHeader("X-Parse-Application-Id", "your application id");
xhr.setRequestHeader("X-Parse-REST-API-Key", "your REST API key");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var result = JSON.parse(xhr.responseText);
if (result.objectId) {
      alert("saved an object with id: " + result.objectId);
    }
  }
}

var data = JSON.stringify({ message: "Hello world!" });
xhr.send(data);

我希望你也可以在你的GET请求中包含标题。