好的,所以我经过多次尝试后来这里问过。
我的目标:
我正在为Android构建一个Phonegap应用程序,它使用了大量的JSON文件。 JSON文件的内容也经常更改。目前,我在应用程序本身提供JSON文件。但由于更改频繁,我会在PlayStore上更新它,我的用户必须每隔几天更新一次。
要解决此问题,我想在线托管JSON,以便我的应用可以在没有应用更新的情况下更新JSON(我可以使用localStorage等,但这不是真正的问题)。
< / LI>我想使用Parse.com的后端存储JSON文件(因为它们提供了更新数据的简便性)。我写了一段代码:
$.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.自由。 :)
感谢。
答案 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请求中包含标题。