我有以下javascript:
function foo()
{
var someObject = $("#someTextbox").val();
var contentType = 'application/x-www-form-urlencoded; charset=UTF-8;';
AjaxRequest(someObject, 'html', 'post', '/ErrorCheck/SaveToFile', contentType, function(response)
{
//stuff
}, function(error)
{ });
}
function AjaxRequest(data, dataType, type, url, contentType, success, error, args)
{
try
{
var useFD = false;
var form = new FormData();
if (type.toUpperCase() == 'POST')
{
if (contentType && contentType.indexOf('application/x-www-form-urlencoded; charset=UTF-8;') === 0)
{
form.append("MyData", JSON.stringify(data));
url = antiForgeryToken.add(url);
useFD = true;
}
}
$.ajax(
{
processData: useFD ? false : true,
mimeType: useFD ? "multipart/form-data" : "",
async: args.async,
cache: args.cache ? true : false,
data: useFD ? form : data,
dataType: dataType,
type: type,
url: url,
contentType: contentType,
traditional: true,
headers:
{
'__RequestVerificationToken': antiForgeryToken.token() != false ? antiForgeryToken.token().val() : '',
'__loginUserId': $('#hidLOGINUSERID').val()
},
beforeSend: function(request)
{ },
success: function(data, textStatus, XMLHttpRequest)
{
try
{
success(data, textStatus, XMLHttpRequest);
}
catch (e)
{}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {},
complete: function(XMLHttpRequest) {}
});
}
catch (err)
{}
}
在上述方案中,useFD
为true
。
然后在我的ErrorCheck
控制器的SaveToFile
方法中,我有以下内容:
public void SaveToFile()
{
try
{
if (Request.Form.Count > 0)
{
//do stuff
}
}
catch (Exception ex)
{
ElmahLogUtility.ErrorException(ex);
}
}
但是,Request.Form.Count
始终为零。我从几个月前问过的问题中得到了这个解决方案here。我在10月份接受了那里的解决方案,我知道这个代码正在运行,但直到最近才进入测试环境,它不再工作,甚至在我的本地环境中也没有。
我做错了什么?