Dojo/请求未定义,尽管需要
Dojo/request undefined despite require
在一个与Orchard视图相关的脚本中,我试图用dojo.request.post
函数将AJAX发布到服务器。然而,我只得到esri/request
,dojo/request
是未定义的。我在require
语句所在的函数之外调用请求,但只要以正确的格式使用其他所需的包,它们就没有问题。Dojo/request
在我们的另一个项目中工作,所以我怀疑Orchard把事情搞砸了(另一项目的dojo/request
使用在一个普通页面中,而不是在视图中),尽管我预计它引起的问题会更早出现。
代码的重要部分:
require([ ... "dojo/request", ... ], function (... Request, ...) {
//custom init function contents
})
function sendResults(featureSet) {
//custom code processing the parameter, making uri, JSON and like
dojo.request.post(uri, {
//sending data
})
}
我的剃须刀需要的零件在同一个文件中包含:
Script.Require("esri/JavaScriptApi").AtHead();
Script.Require("dojo").AtHead();
这些定义见resourcemanifest.cs
:
manifest.DefineScript("esri/JavaScriptApi").SetUrl("http://js.arcgis.com/3.14/");
manifest.DefineScript("dojo").SetUrl("//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js");
当我尝试运行代码时出现的错误:
TypeError: dojo.request is undefined
我在FireBug中测试了它,并确认dojo/request
不存在(对于变体,如dojo/Request
也是如此),只有esri/request
是一个函数,但它没有post
方法。
我被困在这里了。谷歌搜索导致了"纯粹绝望的平原"(第5+页),没有有用的输出,我的同事也不知道。有人知道我为什么看不到dojo/request
以及如何获得它吗?
据我所知,dojo/request
不导出全局(现代AMD模块通常不需要导出),因此dojo.request
永远不会在任何上下文中工作。
使用AMD模块的适当方法是在require
回调的主体中使用它们(或者,更好的是,在AMD模块中组织自己的代码,并在define
工厂函数中使用它们)。
require([ ... "dojo/request", ... ], function (... request, ...) {
request.post(...);
})
或者,如果您确定dojo/request
在您想要使用它时已经加载,您可以使用单个参数require
来引用它:
require('dojo/request').post(...);
然而,这通常并不理想,并被视为黑客攻击。
也许AMD模块简介教程将有助于更好地了解AMD的最佳使用情况。
- "日期“;AJAX请求返回的类型值未定义
- 一台特定计算机的Ajax请求数据未定义/失败
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 通过C#向区块链服务发送请求时未定义XMLHttpRequest
- 从 Angular 数据工厂中的 HTTP POST 请求接收未定义的结果
- React返回未定义的JSON请求
- AngularJS指令中的作用域未定义,控制器中有ajax请求
- xmlhttp请求后未定义$_POST
- 节点JSON https请求未定义
- '$'未定义Jquery ajax请求-javascript导入
- 在ColdFusion中表单范围中未定义AJAX请求的发布参数
- 使用 NodeJS 的请求模块进行 HTTP 身份验证,返回未定义的正文
- 自 2012 年 6 月 12 日以来,“未定义”随机附加到我网站上 1% 的请求 URL 中
- 多个 ajax 请求未定义
- 类型错误:在 ASP.NET 中触发 AJAX 请求时,未定义不是一个函数
- 请求 JSON 时获取“未定义不是一个函数”
- 未定义使用 HTTP GET 请求返回对象
- AJAX 请求导致“未定义不是对象”错误
- 角度循环请求未定义
- Dojo/请求未定义,尽管需要