3
我有一个Javascript组件,当DOM被加载时,它需要发送一个请求到我们的CDN,其中可能位于不同的域中,以查看是否有内容这个组件。如果存在,组件将自行实例化(它是链接以打开模式中的嵌入式视频),否则它会自毁。我的问题主要是关于我用来代理AJAX请求的Grails控制器。使用Grails控制器来代理AJAX请求
这里是在伪代码的JS:
checkForVideoAssets: function(videoDataUrl){
Ajax.get(videoDataUrl, function(data){
if(data.responseText==='error'){
//tear down the component
}
else{
//if there is data for the video instantiate the component
}
这里是Grails的控制器:
def checkForModalVideoAsset = {
def req = new URL("http://" + params.videoUrl + "/expense/videos/")
def connection = req.openConnection()
if(connection.responseCode != 200){
render 'error'
}
if(connection.responseCode == 200){
render req.getText()
}
}
所以,综上所述,JS从具有一部分的DOM抓住一个属性URL(我们通过约定定义),将该URL发送给控制器,控制器尝试连接到该URL(在我们的CDN),然后将该响应传递回XHR对象的responseText部分中的AJAX成功回调。这对我来说感觉不太理想,是否有可能将实际响应传递回JS功能?
此信息对您也可能有用:http://stackoverflow.com/a/2824968/311525 – Scott