Задать вопрос
@Scorpiored88

Как указать правильный путь к к локальному json файлу в angularjs при post запросе?

Здравствуйте.
Пишу phonegap приложения на angulajs.
Стоит задача проверять данные с локального json файла, и при необходимости дописать новые данные в етот файл.
Читаю файл с помощю get запроса
$http.get('/pub/data.json') .then(function(res){
                  $scope.gotdata = res.data;})

Все отлично работает,но когда мне нужно что то добавить,использую post запрос в виде :
$http.post('/pub/data.json' ,newDataToAppend) .then(function(res){
                  console.log('done');})

получаю ошибку 404, файл не найден :(
Получается что при get запросе файл виден,а при post нет :(
Подскажите пожалуйста, что делаю не так
  • Вопрос задан
  • 1694 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
mlnkv
@mlnkv
JavaScript Developer
Вы себе вообще представляете что такое post запрос и чтение и запись в локальные файлы ?!)
docs.phonegap.com/en/edge/cordova_file_file.md.html

чтение файла:
// Wait for device API libraries to load
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
function onDeviceReady() {
  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
  fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
  fileEntry.file(gotFile, fail);
}

function gotFile(file){
  readDataUrl(file);
  readAsText(file);
}

function readDataUrl(file) {
  var reader = new FileReader();
  reader.onloadend = function(evt) {
    console.log("Read as data URL");
    console.log(evt.target.result);
  };
  reader.readAsDataURL(file);
}

function readAsText(file) {
  var reader = new FileReader();
  reader.onloadend = function(evt) {
    console.log("Read as text");
    console.log(evt.target.result);
  };
  reader.readAsText(file);
}

function fail(error) {
  console.log(error.code);
}


запись в файл
// Wait for device API libraries to load
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
function onDeviceReady() {
  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
  fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
  fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
  writer.onwriteend = function(evt) {
    console.log("contents of file now 'some sample text'");
    writer.truncate(11);
    writer.onwriteend = function(evt) {
      console.log("contents of file now 'some sample'");
      writer.seek(4);
      writer.write(" different text");
      writer.onwriteend = function(evt){
        console.log("contents of file now 'some different text'");
      }
    };
  };
  writer.write("some sample text");
}

function fail(error) {
  console.log(error.code);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы