gpt4 book ai didi

json - Ajax成功,但JSON中的Grails为空

转载 作者:行者123 更新时间:2023-12-02 15:10:14 26 4
gpt4 key购买 nike

在sencha中,AJAX总是成功的,但是每当我尝试恢复他时,grails都会失败。它应该在def data = params.data中恢复,并且def data = params无法正常工作。

Sencha中的 Controller (保存时)

onSave: function(button, e, eOpts) {
var name = Ext.getCmp('name').getValue();
var description = Ext.getCmp('description').getValue();
var data = {};
data.name = name;
data.description = description;

Ext.Ajax.request({
type: 'POST',
contentType:'application/json',
dataType: 'jsonp',
data: data,
crossDomain: true,
url: 'http://localhost:8080/TryIt/product/newProduct',
success: function(response, opts) {
console.log('server-side success with status code ' + response.status);
},
failure: function(response, opts) {
console.log('server-side failure with status code ' + response.status);
},
error: function(msg){
alert(msg);
}
});

Controller 在grails
    def newProduct() {
def data = JSON.parse(data)
def newP = new Product(name: data.name, description: data.description)
if (newP) {
newP = newP.save(flush: true)
println "saved!"
println data.name
println data.description
} else {
println "error"
}
return result as JSON
}

问题是,如何恢复上交的数据?
是的,js和jquery就像彩虹和蝴蝶一样(效果很好)。

最佳答案

如果您的请求确实跨域,则将无法使用Ext.Ajax,而必须使用 Ext.data.JsonP 。但是显然不是,或者您根本不会在服务器端看到它。

无论如何,Ext.Ajax#requestExt.data.JsonP#request都不接受data选项。因此,您的请求可能正在离开,但是却没有任何内容。在浏览器开发人员工具的网络面板中进行检查。

然后,如果您坚持使用Ext.Ajax,请使用jsonData参数代替data,或者使用JsonP,请使用params

关于json - Ajax成功,但JSON中的Grails为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17847026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com