使用form.submit()时出错

本文关键字:出错 form submit 使用 | 更新日期: 2023-09-27 18:09:05

我们的应用程序使用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.

使用form.submit()时出错

尝试添加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'}
}));

似乎有一个FireFox错误插入了内容类型。。。

JQuery-Firefox 中的$.ajaxContentType问题

尝试在submit中添加匿名函数,而不是json:

form.submit( function(){
               url: '../api/Empcontroller/SaveData',
               method: 'POST',
               headers: {
               'Content-Type': 'application/json'
                         },
               success: function ( fp, o )
               {

               },
               failure: function ( fp, o )
               {
               }
            } );

hhhmmm。奇怪的我想我找到虫子了。FireFox不喜欢我将"asyncron"状态设置为"false"来告诉脚本等待服务器请求的回复。

所以不是http.open("GET",destURL,true(;我正在使用http.open("GET",destURL,false(;

Firefox不接受"false"上的异步选项

我不确定这是否是问题所在。但是文件上传不需要enctype吗尝试使用

enctype = multipart/form-data

这可能有助于

试试这个:

form.submit( function(){
    url: '../api/Empcontroller/SaveData',method: 'POST',
    headers: {'Content-Type': 'application/json'},
    success: function (fp, o ){},
    failure: function (fp, o ){}
});

使用以下代码。

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 )
               {
               }
            } );

我只是更改了内容类型。