dojo/request/script 可以用于向服务器发送跨域请求,如JSONP等。但单看官方文档有点不容易理解,特将体会记录。
require(["dojo/request/script"], function(script){ script.get("something.js", { jsonp: "callback" }).then(function(data){ // on_success // Do something with the response data }, function(err){ // on_error // Handle the error condition }); // Progress events are not supported })
script.get( url, option );
其中option字段有:
checkString : "someString", // 服务器返回一段JS代码定义了一个变量 someString,浏览器以判断是否定义了该变量来判定是否成功执行。on_success里面不传送data.
jsonp : "cb_name", // 浏览器发送类似于?cb_name=dojo_request_script_callbacks.dojo_request_script0的字段给服务器,
// 服务器返回dojo_request_script_callbacks.dojo_request_script0(...)的调用语句供浏览器执行,调用参数则作为 on_success的data. 如果需要执行该
// 调用,则在 on_success 里面自己手工调用,爱干嘛干嘛。
query : "somestring" or objcect, // 浏览器发送相应parameter给服务器,服务器返回的语句均被 eval,但是on_success里面不送 data.
其它两个字段 timeOut, preventCache 容易理解。