9

我们正在使用extjs and webapi(C#)我们的应用程序。我的表单有一个fileupload控件。我们form.sumbit()在extjs中使用的时候,是不会去success函数的。

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.

4

7 回答 7

2

尝试像这样添加 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'}
}));
于 2013-04-19T23:33:45.157 回答
1

嗯。奇怪的。我想我发现了这个错误。当我将“异步”状态设置为“假”以告诉脚本等待服务器请求的回复时,FireFox 不喜欢它。

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

Firefox 不接受“false”上的异步选项

于 2013-04-25T06:03:23.893 回答
1

试试这个:

form.submit( function(){
    url: '../api/Empcontroller/SaveData',method: 'POST',
    headers: {'Content-Type': 'application/json'},
    success: function (fp, o ){},
    failure: function (fp, o ){}
});
于 2013-04-23T21:03:29.117 回答
1

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

enctype = multipart/form-data

这可能会有所帮助

于 2013-07-22T11:45:14.230 回答
1

尝试在提交中添加匿名函数而不是 json:

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


               },
               failure: function ( fp, o )
               {

               }
            } );
于 2013-04-23T13:05:18.857 回答
1

似乎有一个 FireFox 错误,它可以插入内容类型......

JQuery - Firefox 中的 $.ajax ContentType 问题

于 2013-04-19T18:33:42.083 回答
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 )
               {

               }
            } );

我只是更改了内容类型。

于 2013-08-08T13:54:28.923 回答