【发布时间】:2015-04-05 18:13:18
【问题描述】:
我在这个问题上苦苦挣扎了 2 天...
我有一个 JavaScript 数组(20,000K 行和 41 列)。它最初是通过 ajax 调用在 javaScript 中接收的,如下所示,
var dataArray = [];
var dataRequest = {};
dataRequest.SearchCondition = 'some value';
$.ajax({
type: "POST",
url: "api/GetData/ProcessRequest",
dataType: 'json',
cache: false,
async: true,
crossDomain: false,
data: dataRequest ,
success: function (response) {
dataArray = response;
},
error: function (xhr, textStatus, errorThrown) {
dataArray = null;
}
});
在应用程序中,用户将验证数据并将其发送回 Web API 方法。
我正在尝试将相同的数据 (dataArray) 发送回 web api 方法,但是它失败了。请看下面的代码,
选项 1:(失败 - 请求未命中 web api 方法)
var dataArrayJsonStr = JSON.stringify(dataArray);
$.ajax({
type: "POST",
url: "api/SendData/ProcessRequest",
dataType: 'json',
data: {'dataValue':dataArrayJsonStr },
success: function (response) {
alert('success');
},
error: function (xhr, textStatus, errorThrown) {
alert(errorThrown)
}
});
在 IE 8 中,出现“内存不足”异常弹出窗口。 (我们的大多数应用程序用户仍然使用 IE 8)
在 Chrome 中,它会崩溃。
选项2试过了:(不知道怎么读值)
我尝试通过 XmllHttpRequest 向 web api 发送相同的值
var dataArrayJsonStr = JSON.stringify(dataArr);
var xmlRequest;
if (window.XMLHttpRequest) {
xmlRequest = new XMLHttpRequest();
}
xmlRequest.open("POST", "api/SendData/ProcessRequest", false);
xmlRequest.setRequestHeader('Content-Type', 'application/text');
xmlRequest.send("dataValue=" + dataArrayJsonStr);
使用 Chrome,我能够成功地将数据发布到 Web API,我看到内容长度为“128180309”。但是,我看不到这些值。如何获取 Web API 中的值?
请建议我如何将大数据从 javascript 发送回 web api。
谢谢, 虚拟机
【问题讨论】:
标签: javascript jquery ajax asp.net-web-api xmlhttprequest