使用 form.submit() 时出错
Posted
技术标签:
【中文标题】使用 form.submit() 时出错【英文标题】:Error when using form.submit() 【发布时间】:2013-04-07 03:59:21 【问题描述】:我们的应用程序使用extjs and webapi(C#)
。我的表单有一个fileupload
控件。当我们在extjs中使用form.sumbit()
时,是不会去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.
【问题讨论】:
你检查过 FireBug...? 还可以通过Ctrl+Shift+J
查看 Firefox 控制台
【参考方案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】:似乎有一个 FireFox 的错误会影响内容类型...
JQuery - $.ajax ContentType Problem in Firefox
【讨论】:
【参考方案3】:尝试在提交中添加匿名函数而不是 json:
form.submit( function()
url: '../api/Empcontroller/SaveData',
method: 'POST',
headers:
'Content-Type': 'application/json'
,
success: function ( fp, o )
,
failure: function ( fp, o )
);
【讨论】:
【参考方案4】:嗯嗯。奇怪的。 我想我发现了这个错误。 当我将 'asyncron' 状态设置为 'false' 告诉脚本等待 serverrequest 的回复时,FireFox 不喜欢它。
所以而不是 http.open("GET", destURL, true); 我在用 http.open("GET", destURL, false);
Firefox dont accept asynchron Option on "false"
【讨论】:
【参考方案5】:我不确定这是否是问题所在。但是文件上传不需要enctype 尝试使用
enctype = multipart/form-data
这可能会有所帮助
【讨论】:
【参考方案6】:试试这个:
form.submit( function()
url: '../api/Empcontroller/SaveData',method: 'POST',
headers: 'Content-Type': 'application/json',
success: function (fp, o ),
failure: function (fp, o )
);
【讨论】:
【参考方案7】:使用下面的代码。
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 )
);
我刚刚更改了内容类型。
【讨论】:
以上是关于使用 form.submit() 时出错的主要内容,如果未能解决你的问题,请参考以下文章
js提交表单错误:document.form.submit() is not a function