Сначала рассмотрим это: StackoverFlow link.Как отправлять и получать данные формы по Javascript
Здесь Ajax используется для открытия канала Xhttp на сервере и отправки некоторых данных в файл сценария php с использованием метода post. У меня есть файл сценария perl внутри CGI-bin, но это тоже должно работать.
Я хочу отправить данные через JavaScript, чтобы скрипт на Perl, и получить его обратно без страницы освежающим, так что я сделал это:
Javascript:
var basepath = "localhost";
var req = new XMLHttpRequest();
req.open("POST", basepath+"/perlweb/lox.pl", false);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("script="+this.script);
req.onreadystatechange = function(){
// execute this when ready state changes, i.e. server responds
if (req.readyState == 4 && req.Status == 200) {
// we got what we wanted
console.log(req.responseText);
}
}
lox.pl
мой сценарий имя. Он находится в/perlweb под локальным хостом.
Я создал этот файл в том же месте под названием test.pl:
#! /path/to/perl
print "Content-type: text/plain\n\n";
print "it now works\n";
Вызов этого с /localhost/perlweb/test.pl
производит ожидаемый результат. Поэтому я думаю, что perl также готов.
Теперь вернемся к JavaScript У меня есть две вещи:
У меня есть это предупреждение:
Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer hat. Für weitere Hilfe siehe http://xhr.spec.whatwg.org/
транслирует на: Синхронный XMLHttpRequest в основном потоке не следует использовать больше, потому что он может иметь устойчивые эффекты (?? sic) для конечного результата конечных пользователей.
Я хочу избавиться от этого, но я не знаю, с чего начать. Подняв ссылку xhr.spec.whatwg.org, меня смущает. Это похоже на полный спецификационный документ.
Может ли кто-нибудь, пожалуйста, просто указать мне на то, что я должен делать?
И у меня есть эта ошибка:
NS_ERROR_DOM_BAD_URI: Access to restricted URI denied
Хотя файл существует в моей собственной машине (потому что файл существует в моей машине, я предполагаю, что я не ударю вопрос CORS).
В чем же проблема?