【发布时间】:2017-10-02 16:11:20
【问题描述】:
有一个简单的 WebMethod 将一个文本文件(500000 行)读入一个字符串数组。 调用方法的ajax有成功和错误调用。
问题: 我可以调试后端代码并查看一切是否符合预期。所有值都按预期读取,代码正确执行到末尾。
但是,当代码超出ReadAllLines() 行时,它会在前端触发错误。
究竟发生了什么:
- 我在读取文本文件的 C# 代码的第一行放置了一个断点。
- 当我在调试期间转到下一行时,
mywords数组包含从文件中读取的所有单词。没有错误。但是,网页(前端)会触发警报(错误)。
不知道哪里出了问题。
C#网络方法:
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string[] Test(string Test)
{
string[] mywords = File.ReadAllLines(Server.MapPath("~/Sample/sample.txt"));
return mywords;
}
AJAX 调用:
$.ajax({
type: "POST",
url: "test.aspx/Test",
data: JSON.stringify({ Test: Test }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
},
error: function (xhr, status, error) {
alert("error");
}
});
更新:当我将输入文件更改为另一个包含较少行(如 10,000 行)的文件时。它可以正常工作。
【问题讨论】:
-
错误是什么?
-
您的
$.ajax期望dataType: 'json'但您的方法返回string[]。 -
Alex - 如果我将返回类型更改为字符串而不是数组,我仍然会遇到同样的问题
-
更新了更多信息。当使用行数较少的文本文件时,它可以工作。