createLink 的绝对 URL 基于您在应用程序的 Config.groovy 文件中指定的设置 grails.serverURL。
https://grails.github.io/grails2-doc/2.5.6/ref/Tags/createLink.html
上面写着:
absolute(可选)- 如果为 true,则链接目标地址的前缀为
来自 Config.groovy 的 grails.serverURL 属性的值,或者
http://localhost: 如果 Config.groovy 中没有设置和
未在生产中运行。
然后,如果您不想使用 grails.serverURL,则必须更改 gsp 中的代码。
您应该使用 createLink 生成相对路径,例如:
// generates "/shop/book/list"
<g:createLink controller="book" action="list" />
如果继续生成绝对url,则添加参数absolue='false'
然后您可以将这种 url 传递给您的 ajax 调用,如果您使用 jquery 进行调用,它应该可以工作。
但是,如果您想在代码中使用绝对 url,那么您应该将 createLink 中的相对路径与另一个技巧结合起来:
<g:set var="url" value="${request.requestURL}" />
<g:set var="uri" value="${request.requestURI}" />
<g:set var="yourUrlForAjaxCall">${url.substring(0, url.length() - uri.length())}${request.contextPath}${createLink(action: 'list', controller: 'book')}</g:set>
然后变量 yourUrlForAjaxCall 给出了你所需要的。
我的回答基于 BalusC 的回答 here