SPARQL MAX使用AJAX调用返回禁止的错误403
我有一个ajax调用来获取大于200的最大id。直到几个月前,这还不错,但现在我得到了一个403禁止错误。ajax调用将查询发送到Apache Jena Fuseki服务器,下面是我的代码:SPARQL MAX使用AJAX调用返回禁止的错误403,ajax,sparql,jena,fuseki,Ajax,Sparql,Jena,Fuseki,我有一个ajax调用来获取大于200的最大id。直到几个月前,这还不错,但现在我得到了一个403禁止错误。ajax调用将查询发送到Apache Jena Fuseki服务器,下面是我的代码: function getNextId(){ myQuery= ["PREFIX dcterms: <http://purl.org/dc/terms/>", "PREFIX locah: <http://data.archiveshu
function getNextId(){
myQuery= ["PREFIX dcterms: <http://purl.org/dc/terms/>",
"PREFIX locah: <http://data.archiveshub.ac.uk/def/>",
"prefix xsd: <http://www.w3.org/2001/XMLSchema#>",
"SELECT (max(?id) as ?maxId)",
"WHERE{",
"?item dcterms:identifier ?id.",
"?item locah:item ?i. ",
"FILTER(xsd:integer(?id)>200)}"].join(" ");
$.ajax({
type: 'GET',
dataType: 'jsonp',
cors: 'true',
url: myEndPoint,
data: {"query": myQuery,
"output": "json"},
success: successId,
error: myError
});
console.log('After .ajax');
}
函数getNextId(){
myQuery=[“前缀dcterms:”,
“前缀locah:”,
“前缀xsd:”,
“选择(最大(?id)作为?最大id)”,
“何处{”,
“?项目dcterms:标识符?id.”,
“?项目locah:项目i.”,
“过滤器(xsd:integer(?id)>200)}”].join(“”);
$.ajax({
键入:“GET”,
数据类型:“jsonp”,
科尔斯:“真的”,
网址:myEndPoint,
数据:{“查询”:myQuery,
“输出”:“json”},
成功:成功,
错误:myError
});
log('After.ajax');
}
有趣的是,当我直接在fuseki服务器上使用同一个查询时,效果很好。知道为什么会发生这种情况吗?显而易见的问题:1)哪个Fuseki版本?2) 是否有任何其他查询工作,例如,
select*{s?p?o}limit 10
3)您是否尝试重新启动Fuseki,或者它已经是新运行的?4) 你在“几个月”里改变了什么?1)Fuseki版本3.12.0 2)是的,它可以3)是的,我重新启动了它4)什么都没有!我注意到,即使使用其他查询,我也会得到一个错误403,但是像上面提到的一个简单选择很好。您是否尝试使用数据参数部分中的encodeURIComponent(myQuery)
而不是myQuery
对查询进行编码?403是一个权限错误。查询未到达查询引擎。可能是myEndPoint
错误或cors
。