Я использую для программирования текстовый редактор скобок и я уже установил W3C валидатор, но он работает, пока я в сети, но оффлайн. Я пытаюсь установить https://validator.w3.org/docs/install.html, и я бегу к localhost: 8888, но расширение скобок добавляется только через ajax (javascript). Возможно ли отправить ajax как на исходный веб-сайт W3C?W3C Validator offline на localhost от ajax
ответ
Здесь хранитель HTML-проверки W3C (валидатор). Да, можно отправить запрос ajax локальному экземпляру текущей проверки. Чтобы использовать Fetch, чтобы сделать это и получить JSON-отформатированные результаты обратно:
var checkerUrl = "http://localhost:8888/?out=json"
fetch(document.location.href)
.then(function(currentDoc) { return currentDoc.text(); })
.then(function(htmlSource) {
fetch(
checkerUrl, {
method: "POST",
mode: "cors",
body: htmlSource,
headers: new Headers({ "Content-Type": "text/html;charset=utf-8" })
})
.then(function(checkerResponse) { return checkerResponse.json(); })
.then(function(jsonOutput) {
console.dir(jsonOutput.messages);
})
});
Это показывает основные шаги, чтобы следовать, чтобы доставить запрос в том, как средство проверки ожидает:
- отправить документ на Проверка, как тело POST (в данном примере текущего документа)
- сказать шашке форматировать свои результаты в формате JSON (
out=json
) - сделать
text/html;charset=utf-8
типа носителя тела POST вы посылаете клетчатые
Средство проверки также поддерживает multipart/form-data
для придания ему источника HTML быть проверена, но придав ему источник, как тело POST вместо является предпочтительным (и лучше) способ сделать это.
Если вместо fetch()
вы хотите использовать JQuery $.ajax(…)
, вот пример:
var checkerUrl = "http://localhost:8888/?out=json"
$.get(document.location.href,
function(htmlSource)
{
$.ajax({
url: checkerUrl,
type: "POST",
crossDomain: true,
data: htmlSource,
contentType: "text/html;charset=utf-8",
dataType: "json",
success: function (jsonOutput) {
console.dir(jsonOutput.messages);
}
});
});
И если вместо того, чтобы либо fetch()
или JQuery $.ajax(…)
вы хотите использовать старую школу XHR, но это не ясно, как напишите подробности в этом случае, дайте мне знать, и я тоже могу привести пример этого.
Во всех случаях JSON выход .messages
представляет собой массив объектов, каждый из которых содержит что-то вроде:
firstColumn: 1
lastColumn: 6
lastLine: 4
message: "Unclosed element “span”."
type: "error"
The documentation for the checker JSON format дает более подробную информацию о формате JSON шашка излучающего.