gpt4 book ai didi

dojo.xhrGet 或 dojo.xhrPost

转载 作者:行者123 更新时间:2023-12-05 00:08:17 26 4
gpt4 key购买 nike

我对此很陌生,事实上这是我第一次尝试 Dojo。我正在尝试从以下网站获取数据:

<script
text="text/javascript"
src="http://o.aolcdn.com/dojo/1.3/dojo/dojo.xd.js"
djConfig="parseOnLoad:true,isDebug:true"
></script>

<script type="text/javascript">
//How are we supposed to know what else to include in the dojo thing? like query?
dojo.addOnLoad(function(){
console.log("hi");
dojo.xhrPost({
url: "http://www.scrapbookingsuppliesrus.com/catalog/layout", //who knows how to set relative urls?
handleAs: "json", //get json data from server
load: function(response, ioArgs){
console.log("got");
console.log(response); //helps with the debugging
return response; //that way goods should be a very large array of the data we want
},
error: function(response, ioArgs){
console.log("nope didn't make it", response+' '+ioArgs); //helps with the debugging
return response; //who knows what this does
} //last item, thus no extra comma
});
});
</script>

但什么也没有发生。当我在这里时, response 和 ioArgs 变量到底是什么。他们应该神奇地响应我猜已经特别定义的请求。但是,谁知道呢。此外,我认为每次尝试后它都会触发加载或错误,但是唉。
曾经有一个错误,我要去一个禁止的 uri,但后来 firebug 会引用一个非常大的 dojo 脚本,在那里无法判断它为什么被破坏。你们其他人在什么环境下开发?

最佳答案

嗯,有几个问题。

让我们先从非常简单的开始。

在开发时,您希望使用“未压缩”版本的 Dojo,可以通过将 .uncompressed.js 附加到正在使用的 Dojo 库的路径中来找到它:

http://o.aolcdn.com/dojo/1.3/dojo/dojo.xd.js.uncompressed.js

如果它在 core-Dojo 中,这将更容易看到什么中断。

接下来是 djConfig 参数。我很确定 Dojo 可以处理字符串,但传统上它是用对象定义的,所以,一旦你包含了你的 Dojo 库:
<script src="path to dojo"></script>

启动一个新的脚本 block 并在其中定义 djConfig 对象:
<script>
djConfig = {
parseOnLoad: true,
isDebug: true
};
</script>

下一个最简单的,我使用 IntelliJ JIDEA 进行开发,它具有内置的 Dojo 代码感知功能,让生活更轻松。否则,标准包,Firefox + Firebug。

复杂的东西:

您似乎正在使用 XHR 方法请求数据,希望您知道这意味着您的脚本和被访问的数据必须位于同一个域中,否则您将遇到安全错误。如何解决?您使用称为跨域脚本的技术,dojo 也通过 dojo.io.script.get 功能支持该技术。

更复杂的东西:

Dojo 使用称为“延迟”对象的东西。这意味着请求实际上并不会在对象创建后立即发出,而是在您要求它发出时发出,这就是“延迟”的概念,您将代码块的执行推迟到晚点。然后在您的情况下解决此问题的方式如下:
var deferred = dojo.xhrPost({
url: "http://www.scrapbookingsuppliesrus.com/catalog/layout", //who knows how to set relative urls?
handleAs: "json" //get json data from server
});

if(deferred) {
deferred.addCallback(function(response){
console.log("got");
console.log(response); //helps with the debugging
return response; //that way goods should be a very large array of the data we want
});
deferred.addErrback(function(response){
console.log("nope didn't make it", response+' '+ioArgs); //helps with the debugging
return response; //who knows what this does
});
}

现在应该可以解决了。

作为个人说明,我不建议使用 XHR,而是使用 dojo.io.script.get 方法,从长远来看,它更便携。

关于dojo.xhrGet 或 dojo.xhrPost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com