Как добавить локальный файл json в jsfiddle?
Как добавить JSON файл в jsfiddle? У меня есть файл JSON, но я не могу прикрепить его в jsfiddle. Я могу создать объект JSON и использовать его, но есть ли способ добавить внешний файл JSON в скрипт?
Ответы
Ответ 1
Для достижения своей цели вы можете использовать Совместное использование ресурсов (CORS).
В основном, как работает CORS, если заголовок Access-Control-Allow-Orign
задан в ответе HTTP, тогда содержимое, загруженное AJAX, может использоваться в нашем script, независимо от того, находится ли он в том же домене или какой-либо другой.
Теперь для вашей цели вы можете загрузить локальный файл JSON в папку Dropbox Public
и получить общедоступный URL-адрес, который можно загрузить с помощью простого вызова AJAX.
В этом случае вызов AJAX преуспеет, потому что Dropbox устанавливает в ответе Access-Control-Allow-Orign:*
следующее значение, что означает, что любой домен может использовать загруженный контент.
Код JQuery будет чем-то вроде этого (вы даже можете использовать чистый JavaScript, если хотите).
var url = 'https://dl.dropboxusercontent.com/u/94145612/example.json';
var myJsonData= {};
$.ajax({
type: 'GET',
url: url,
async: false,
contentType: "application/json",
dataType: 'json',
success: function (data) {
alert('success');
console.log(data);
myJsonData= data;
},
error: function (e) {
alert('error');
console.log(e);
}
});
Ответ 2
Myjson.com предоставляет api, который работает в Jsfiddle.net.
Пользовательский myjjson:
// Loading JSON with CROS
var url = 'https://api.myjson.com/bins/3ko1q';
$.ajax({
type: 'GET',
url: url,
async: false,
contentType: "application/json",
dataType: 'json',
success: function (data) {
alert('success');
console.log(data);
},
error: function (e) {
alert('error');
console.log(e);
}
});
Пример Myjson GET:
// 1. Create valid uri via POST
// 2. GET using newly created uri
var obj = {
"key": "value",
"key2": "value2"
};
var data = JSON.stringify(obj);
$("#clickMe").click(function () {
$.ajax({
url: "https://api.myjson.com/bins",
type: "POST",
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, textStatus, jqXHR) {
// load created json
$.get(data.uri, function (data, textStatus, jqXHR) {
var json = JSON.stringify(data);
$("#data").val(json);
});
}
});
});
Ответ 3
На основе вашего комментария вы хотите использовать чистый JSON файл в качестве внешнего ресурса в jsFiddle. Вы не можете этого сделать, потому что чистый JSON - это не JavaScript. Предположим, вы пытаетесь включить http://example.com/foo.json
в качестве внешнего ресурса, и этот файл содержит следующее:
{"foo":"bar"}
Это приведет к Uncaught SyntaxError: Unexpected token :
, поскольку объект JSON сам по себе недействителен JavaScript.
Но если вы назначаете объект JSON переменной, например:
var foo = {"foo":"bar"};
тогда никаких проблем.
Решение: используйте модифицированную версию вашего файла для инициализации переменной для использования в jsFiddle.