Записать массив javascript в файл json на другом домене - PullRequest
0 голосов
/ 24 августа 2011

Прежде всего у меня есть следующее, чтобы преобразовать мой массив Javascript в массив JSON.

<script type="text/javascript" src="https://github.com/douglascrockford/JSON-js/blob/master/json2.js"></script>

  var sv_defaultArray = new Array([]);
  sv_defaultArray[0] = "post 4";
  sv_defaultArray[1] = "post 5";
  sv_defaultArray[2] = "post 6";

  var myJsonString = JSON.stringify(sv_defaultArray);

Теперь я хотел бы записать преобразованный массив в файл json, скажем, http://www.foobar.com/array.json любым возможным способом.

Итак, я на следующем этапе с возможностями php и jQuery.post;

<?php
$list = $_POST["array"];
$fp = fopen('array.json', 'w');
fwrite($fp, $list);
fclose($fp);
?>

$.post("http://www.foobar.com/write.php", { 'array': myJsonString});

Приведенное выше решение дает мне ошибки, в основном возвращаемые в консоли как ошибки источника.

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Вы можете иметь файл PHP на стороне сервера в другом домене, принять ваш json как параметр POST / GET и записать его в файл, а затем вернуть ответ json в качестве результата.

Тогда вы можете использовать jquery.getJSON в вашем первом домене для вызова URL с вашим json, который должен быть записан

http://api.jquery.com/jQuery.getJSON/

0 голосов
/ 24 августа 2011

Вам нужно будет отправить данные через форму, так как AJAX не разрешает междоменные запросы. Все остальное, что вы делаете, на 100% правильно (при условии, что php находится на конечном сервере). Я бы порекомендовал текстовую область с видимостью: ни один стиль тега не установлен. Используйте js для заполнения текстовой области и отправки формы с помощью form.submit ()

0 голосов
/ 24 августа 2011

Вам нужен серверный скрипт, который может записать файл. Затем вы можете отправить массив json к нему через ajax, и он запишет файл.
Я должен подчеркнуть тот факт, что у javascript нет доступа к файловой системе, поэтому это нельзя сделать только с помощью чистого javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...