Javascript dojoJS Solr连接器-传递(返回)数据
我不熟悉使用JS和dojo框架从rest服务(如Solr和ElasticSearch)访问json数据。 在本例中,我使用了Javascript dojoJS Solr连接器-传递(返回)数据,javascript,rest,solr,dojo,Javascript,Rest,Solr,Dojo,我不熟悉使用JS和dojo框架从rest服务(如Solr和ElasticSearch)访问json数据。 在本例中,我使用了dojo来编写solr.js,它包含一个简单的函数,该函数使用JSONP参数和dojo.io.script来连接到solr索引。现在我需要让函数传递(返回)从Solr获取的数据。以下是我希望调用函数的方式: <script src="solr.js"></script> <script> var mySolrData = solrStor
dojo
来编写solr.js
,它包含一个简单的函数,该函数使用JSONP
参数和dojo.io.script
来连接到solr索引。现在我需要让函数传递(返回)从Solr获取的数据。以下是我希望调用函数的方式:
<script src="solr.js"></script>
<script>
var mySolrData = solrStore(
"http://solrUrl/",
"indexName/select"
);
</script>
当我在浏览器中执行代码时,我会在控制台日志中看到在加载:部件时需要的数据。然而,对于如何将数据从函数中提取到调用该函数的页面,我的大脑有一个屁,因为无论我如何尝试,它都会说它是未定义的
将从solrStore函数检索到的数据放入
mySolrData
var中需要做什么?变量mySolrStore是在异步函数“load:”中定义的。
如果我没有说错,您就不能从异步函数返回(捕获值),因为上下文不同
//set the value of the raw response data
var mySolrStore = data;
我建议您在“load:”之外定义变量。例如,您可以在之前和之后定义它
var mySolrStore;
//arguments for jsonp to connect to solr index//
var jsonpArgs = .....
并在load:call中设置数据值
load: function(data){
//set the value of the raw response data
mySolrStore = data;
希望它能解决这个问题。我猜您收到的响应是文本/纯文本格式的,您希望通过提到handleAs:“json”得到json响应。尝试使用json.parse(json)将纯文本转换为json@ShadAmez,当我调用它时,我在日志中将数据视为对象,在日志中我调用
console.log(mySolrStore.response.docs)代码>所以我知道它在那里工作。我只需要正确地返回响应,以便在调用函数的代码中使用它。
load: function(data){
//set the value of the raw response data
mySolrStore = data;