У меня есть эта функция JavaScript, которая направлена на вставку ключевого слова в именованный граф, который принадлежит набору данных project
.Jena Fuseki не работает при создании запроса вставки из javascript. Нет Ошибка обновления параметра
function insert(keyword) {
var query = "INSERT DATA {GRAPH <http://test1> {<subj> <pred>'" + keyword + "'. }}";
var endpoint = "http://localhost:3030/project/update";
sparqlQueryJson(query, endpoint, showResults, true);
}
Я выполнил Jena фусеки с опцией --update
. Функция sparqlQueryJson выглядит следующим образом:
function sparqlQueryJson(queryStr, endpoint, callback, isDebug) {
var querypart = "query=" + escape(queryStr);
// Get our HTTP request object.
var xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// Code for older versions of IE, like IE6 and before.
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert('Perhaps your browser does not support XMLHttpRequests?');
}
// Set up a POST with JSON result format.
xmlhttp.open('POST', endpoint, true); // GET can have caching probs, so POST
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.setRequestHeader("Accept", "application/sparql-results+json");
// Set up callback to get the response asynchronously.
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
// Process the results
callback(xmlhttp.responseText);
} else {
// Some kind of error occurred.
alert("Sparql query error: " + xmlhttp.status + " " + xmlhttp.responseText);
}
}
};
xmlhttp.send(querypart);
};
функция showResults, на мой взгляд, не очень важно здесь, так как он принимает результаты запроса и показать их в HTML.
Я следовал тому, что обсуждалось here и here, выполнив запрос, используя http://localhost:3030/project/update
. Дело в том, что если я выполню тот же запрос поверх локального сервера Fuseki с тем же URL-адресом конечной точки с помощью Интернета, он работает, но из кода JavaScript он вызывает ошибку: «Ошибка запроса SPARQL: 400 Ошибка 400 : SPARQL Update: No 'update =' параметр ". Я использую Ubuntu 16.04 и Jena Fuseki - версия 2.4.1.