сохранение файла на сервере с помощью jquery

Этот код работает, в том, что он работает без ошибок: —

//  and send data to the server
sfname = "emptydeck02.xml";
$.ajax({
type: "POST",
url: "deck_data/" + sfname,
dataType: "xml",
data: xmlv,
success: function() {
alert(sfname+" saved");
},
error: function() {
alert("An error occurred while saving XML file.");
}

});

Может кто-нибудь, пожалуйста, помогите решить эти проблемы?

  1. Почему этот код не обновляет emptydeck02.xml на сервере?

  2. Почему он не может создать emptydeck02.xml на сервере, если он еще не существует?

  3. Я подозреваю, что мне нужен некоторый php-код на сервере, но как это будет вызываться с использованием моего кода выше?

Обратите внимание, что каталог deck_data имеет открытые и групповые права на запись.

Кроме того, я загружаю xmlv с известным XML-кодом, который работает, когда я читаю его …

0

Решение

Я думаю, вы неправильно понимаете, что такое HTTP (и чего нет), и почему люди разработали такие вещи, как WebDAV и REST.

HTTP — это просто протокол (соглашение о том, что если X запрашивается, Y будет означать успех, Z будет означать сбой и т. Д.) Для клиентов (часто веб-браузеров) и веб-серверов (например, Apache, NGINX, IIS и т. Д.).

Когда ты POSTты просто говоришь «Я отправляю вам некоторые данные на этот ресурс URIMsgstr «То, что веб-сервер решает делать (или не делать) с этими данными, является совершенно отдельной задачей — и делает это абсолютно не означает, что файл будет создан по этому URI.

Первоначально (как я понимаю) HTTP был разработан для решения «простой» проблемы, состоящей в том, чтобы клиент на одном конце сети TCP запрашивал некоторые данные (GET). Последующие «глаголы» (такие как POST) были введены для того, чтобы форматированные данные могли быть перенесены в другую сторону — тогда, когда технологии неизбежно развивались, такие технологии, как WebDAV стремился расширить HTTP, чтобы вести себя «больше как файловая система». (Мой выбор слов, основанный только на моем базовом понимании цели WebDAV.)

Моя точка зрения такова: HTTP дает только протокол, это не означает, что реализация. Если вы хотите, чтобы ваш веб-сервис (который использует HTTP) разрешал создание файла, вам нужно было бы также внедрить соответствующий веб-сервис на стороне сервера. (Как вы говорите, PHP является одним из таких примеров языка для этого.)

Безопасность — серьезная проблема, если вы позволяете потенциально ненадежным источникам передавать данные в вашу сеть. В противном случае, если вы обычно ищете подсказки, я бы посоветовал вам начать читать на PHP (и Apache mod_rewrite если вы хотите отобразить «виртуальные» URI на один скрипт PHP) или посмотреть на реализации сервера WebDAV, например Apache mod_dav.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector