Javascript DBpedia图像链接与CORS请求问题

Javascript DBpedia图像链接与CORS请求问题,javascript,sparql,Javascript,Sparql,由于CORS请求限制,我无法显示从DBpedia链接检索到的图像,如“dbo:缩略图”。 Sparql查询检索的DBPedia上的图像链接(在本例中是从http://dbpedia.org/page/Sophie,_Wessex伯爵夫人)是http://commons.wikimedia.org/wiki/Special:FilePath/Sophie,_grevinna_av_Wessex.jpg?宽度=300。这不是图像的最终链接,它重定向到https://upload.wikimedia.

由于CORS请求限制,我无法显示从DBpedia链接检索到的图像,如“dbo:缩略图”。 Sparql查询检索的DBPedia上的图像链接(在本例中是从
http://dbpedia.org/page/Sophie,_Wessex伯爵夫人
)是
http://commons.wikimedia.org/wiki/Special:FilePath/Sophie,_grevinna_av_Wessex.jpg?宽度=300
。这不是图像的最终链接,它重定向到
https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Sophie%2C_grevinna_av_Wessex.jpg/300px-Sophie%2C_grevinna_av_Wessex.jpg
。我的java脚本应用程序想要检索图像url,被重定向,由于CORS请求限制而失败。 我可以像
https://commons.wikimedia.org/wiki/File:Sophie,但这并不能解决问题,因为它只指向图像的页面,而不是图像本身。最后的图像文件URL有一个部分,我不明白-在上面的例子中,它是“A/ab”在中间。这部分似乎是随机的。
有没有办法通过java脚本应用程序中的sparql查询检索图像URL并在画布上显示图像

这是我的Sparql查询:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dct:  <http://purl.org/dc/terms/>
PREFIX dbc: <http://dbpedia.org/resource/Category:>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ex: <http://localhost:8890/ex/> 

CONSTRUCT
{?person rdfs:label ?name .
?person ex:icon ?picture_person_final .
?person dbo:title ?title .}

WHERE
{
SERVICE <http://dbpedia.org/sparql>
{
?person dbp:fullName ?name .
?person a dbo:Person .
?person dct:subject dbc:House_of_Windsor .
?person dbo:birthDate ?birthDate .
?person dbo:thumbnail ?picture_person .
BIND (strafter(str (?picture_person) , "http://commons.wikimedia.org/wiki/Special:FilePath/" )AS ?picture_person_short1 )
BIND ( STRBEFORE(str (?picture_person_short1) , "?" )AS ?picture_person_short2 )
BIND(CONCAT ("https://commons.wikimedia.org/wiki/File:",(STR( ?picture_person_short2)))  AS ?picture_person_final )

FILTER (?birthDate > "1960-01-01"^^xsd:date)
?person dbo:title ?title .
}}
前缀dbo:
前缀dbp:
前缀dbr:
前缀foaf:
前缀dct:
前缀dbc:
前缀xsd:
前缀rdfs:
前缀ex:
构造
{?个人rdfs:标签?名称。
?人员示例:图标?图片\人员\最终。
?人员dbo:职务?职务。}
哪里
{
服务
{
?人员dbp:全名?姓名。
?个人dbo:个人。
?人员dct:受试者dbc:温莎之家。
?个人dbo:生日?生日。
?人物dbo:缩略图?图片\人物。
绑定(strafter(str(?picture_person))“http://commons.wikimedia.org/wiki/Special:FilePath/)如图(人)(简称1)
绑定(STRBEFORE(str(?picture\u person\u short1),“?”)为picture\u person\u short2)
绑定(CONCAT(“https://commons.wikimedia.org/wiki/File:“,(STR(?picture\u person\u short2))作为?picture\u person\u final)
过滤器(?出生日期>“1960-01-01”^^xsd:date)
?人员dbo:职务?职务。
}}

您想对图像URL做什么?URL对于图像标记非常有效:您的示例之所以有效,是因为它不使用XHR请求。这个问题来自异步拉取数据的XHR(又名ajax)请求。这些需要在目标机器上进行正确的CORS请求设置,这当然无法从wikipedia获得。你想用图像URL做什么?URL对于图像标记非常有效:您的示例之所以有效,是因为它不使用XHR请求。这个问题来自异步拉取数据的XHR(又名ajax)请求。这些需要在目标机器上进行正确的CORS请求设置,这当然是无法从wikipedia获得的。