Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 可以用Grails向重定向添加头吗_Http_Grails - Fatal编程技术网

Http 可以用Grails向重定向添加头吗

Http 可以用Grails向重定向添加头吗,http,grails,Http,Grails,我在CDN上使用任意文件名存储文件。当向我的应用程序请求某些文件时,我想重定向(302)到CDN上文件的URL。但是,我想向生成的请求添加响应头。具体来说,我想添加内容类型、配置和文件名=。使用Grails可以做到这一点吗 编辑:这是我希望/期望的工作 class SomeController { def someAction() { String cdnFileUrl = "http://somecdn.com/foo.bin" response.st

我在CDN上使用任意文件名存储文件。当向我的应用程序请求某些文件时,我想重定向(302)到CDN上文件的URL。但是,我想向生成的请求添加响应头。具体来说,我想添加内容类型、配置和文件名=。使用Grails可以做到这一点吗

编辑:这是我希望/期望的工作

class SomeController {
    def someAction() {
        String cdnFileUrl = "http://somecdn.com/foo.bin"

        response.status = HttpServletResponse.SC_FOUND
        response.setHeader('Location', cdnFileUrl)
        response.setContentType('application/octet-stream')
        response.setHeader('content-disposition', 'filename=bar.bin')
        render('')
    }
}

发生重定向并提供cdnFile,但是响应不包含“位置”和“内容处置”。内容类型是text/pain,但这是我从somecdn.com所期望的,因为它似乎总是这样设置它。

在Grails中,您在控制器中有一个对象,它是的一个实例,具有setHeader(String,String)等方法。

我认为您应该能够将任何自定义头添加到响应中,考虑到你在代码中处理请求,我已经尝试过处理响应。具体地将状态设置为302/Found、内容类型和处置以及CDN url的位置。“重定向”起作用,但标题似乎没有应用于结果请求。解决方案成功吗?有解决方案吗?我在问题中添加了一条注释,描述了我对响应的尝试。