我们正在将extjs and webapi(C#)
用于我们的应用程序。我的表单有一个fileupload
控件。当我们在extjs中使用form.sumbit()
时,它不会进入成功函数。
WebApi代码:
bool SaveData(Employee obj)
{
return true;
}
Extjs代码:
form.submit( {
url: '../api/Empcontroller/SaveData',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
success: function ( fp, o )
{
},
failure: function ( fp, o )
{
}
} );
我在所有浏览器中都得到了响应。在Chrome
它取得了成功,但在Firefox its not.
答案 0 :(得分:1)
似乎有一个FireFox错误,它会插入内容类型......
答案 1 :(得分:1)
尝试添加dataType参数,如下所示:
form.submit({
url: '../api/Empcontroller/SaveData',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
dataType: 'json',
success: function (fp, o) {
},
failure: function (fp, o) {
}
});
我也看到过这样做:(将 json_data_here 替换为您需要发送的任何数据)
form.submit(Ext.Ajax.request({
url: '/../api/Empcontroller/SaveData',
method: 'GET',
jsonData: json_data_here,
headers: {'Content-Type' : 'application/json' , 'Accept' : 'application/json'}
}));
答案 2 :(得分:1)
尝试在submit中添加匿名函数而不是json:
form.submit( function(){
url: '../api/Empcontroller/SaveData',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
success: function ( fp, o )
{
},
failure: function ( fp, o )
{
}
} );
答案 3 :(得分:1)
试试这个:
form.submit( function(){
url: '../api/Empcontroller/SaveData',method: 'POST',
headers: {'Content-Type': 'application/json'},
success: function (fp, o ){},
failure: function (fp, o ){}
});
答案 4 :(得分:1)
hhhmmm。奇怪。 我想我发现了这个错误。 当我在'false'上设置'asyncron'状态告诉脚本等待serverrequest的回复时,FireFox不喜欢它。
所以代替 http.open(“GET”,destURL,true); 我在用 http.open(“GET”,destURL,false);
答案 5 :(得分:1)
我不确定这是不是问题。但是文件上传不需要enctype 尝试使用
enctype = multipart/form-data
这可能会有所帮助
答案 6 :(得分:0)
使用以下代码。
form.submit( {
url: '../api/Empcontroller/SaveData',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
success: function ( fp, o )
{
},
failure: function ( fp, o )
{
}
} );
我刚刚更改了内容类型。