- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 gsp 页面,其中包含一个执行 ajax 调用的 JS 函数(名为“sample”)。
function sample() {
var params = { office: {id: "testId"}, population: {id: "testId2"}};
$.ajax({
url: "http://localhost:8080/officeProj/mustache/list",
cache: false,
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json",
data: JSON.stringify(params),
complete:function(json){
console.log(" reponse :"+ json);
},
success: function(officeData) {
var template = "<h1>{{data.firstName}} {{data.lastName}}</h1>";
var html = Mustache.to_html(template, data);
$('#sampleArea').html(html);
} ,
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log("error :"+XMLHttpRequest.responseText);
}
})
}
现在,这个 ajax 调用到达适当的 GRAILS Controller 和适当的操作,定义为:
def list = {
withFormat {
html { return [title: "Mustache" , data:[firstName:"Indiana", lastName:"Jones"], address:"NYC" ] }
json {
// extract the data to be rendered to the page
println("processing JSON.....")
render ([title: "Mustache" , data:[firstName:"Indiana", lastName:"Jones"], address:"NYC" ] as JSON)
}
}
}
问题是控件从不经过 Controller 操作中的 withFormat->json ,因此我没有看到预期的结果。(当控件返回到 gsp 页面时,它会经过“完整的”,但不是通过“成功”。没有记录错误。任何人都可以看到我的 ajax 调用有任何问题吗?如果我需要提供更多信息,请告诉我。提前致谢。
最佳答案
尽管您的问题似乎已经解决,但我想提一下背后的实际原因。
问题似乎出在 grails 进行内容协商的方式上。
根据grails文档,grails将查找接受 header ,这将决定响应格式。
但是这里的问题是,默认情况下,在 config.groovy 中,grails.mime.use.accept.header = false,它基本上忽略了接受头,所以即使你在你的文件中设置了 dataType:"json"ajax 请求(依次将接受 header 设置为“application/json”),它不会查找接受 header ,并且响应格式将始终为“all”,这是默认值。
所以基本上设置 grails.mime.use.accept.header = true 就可以解决问题。
希望这有帮助
关于jquery - Ajax 调用不会通过 GRAILS Controller 上的 withFormat->json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405049/
我有一个 Grails 应用程序,配置为动态构建所有 View 。在我的 Controller 中,我想处理多种请求和响应内容类型 - 特别是 html 和 json: request.withFor
我正在尝试 grails 中的 withFormat 闭包。我的行动如下: if (myInstance.save(flush: true)) { withFormat
我有一个 gsp 页面,其中包含一个执行 ajax 调用的 JS 函数(名为“sample”)。 function sample() { var params = { office:
在 Grails 2.1.1 应用程序中,我正在尝试对使用的 Controller 进行单元测试 'withFormat' 将响应呈现为 HTML 或 JSON。但是响应 HTML 内容类型总是导致
我是一名优秀的程序员,十分优秀!