【发布时间】:2017-03-27 08:34:13
【问题描述】:
我在网页上有一段 JavaScript,它允许用户扫描序列号,然后它应该将这些序列号发送到一个网络方法,由数据库记录它并生成一个 txt 文件。
webmethod 中的内容无关紧要,因为代码永远不会运行。 (即使删除整个方法并使其将 bool 更改为 true 作为示例,也会返回相同的错误)。这是Js:
function sendingReady() {
saveSerialNumbers();
var employeeNr = document.getElementById("userCode").textContent;
var productNr = document.getElementById("productCode").textContent;
var cnt = {
employeeNumber: employeeNr,
productNumber: productNr
};
$.ajax({
type: "POST",
url: "WebServices.asmx/sendingReady",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({
'cnt': cnt
}),
success: function() {
console.log("Success sendingReady")
},
error: function() {}
});
var succes = "succes";
localStorage.setItem("SuccesVerzenden", succes);
}
function saveSerialNumbers() {
var scannedserials = [];
var errorchoises = [];
var Table = document.getElementById("SerialListContainer");
var rowLength = Table.rows.length;
for (i = 0; i < rowLength; i++) {
var row = Table.rows[i];
var serialnumber = row.childNodes[0].textContent;
scannedserials.push(serialnumber);
var errorChoice = row.childNodes[1].childNodes[0].value;
errorchoises.push(errorChoice);
}
var cnt = {
serialNumber: scannedserials,
sendingErrorcode: errorchoises,
personalNumber: document.getElementById("userCode").textContent,
productNumber: document.getElementById("productCode").textContent
};
$.ajax({
type: "POST",
url: "WebServices.asmx/createSendingCeetisFile",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({
'cnt': cnt
}),
success: function() {
console.log("Success saveSerialNumbers")
},
error: function() {}
});
}
要使顶级功能正常工作,我在日志中收到“成功 SendingReady”消息。但是由顶部调用的底部函数却没有。从将数据作为 4 个单独的实例发送,到更改 Ajax 调用中的选项,再到更改收件人 web 方法,我已经尝试了所有方法。这就是说的webmethod:
[System.Web.Services.WebMethod]
public void createSendingCeetisFile(SendingErrors cnt)
{
//unimportant code that doesn't ever run anyway;
}
发送错误为:
public class SendingErrors
{
public string[] serialNumber { get; set; }
public string[] sendingErrorcode { get; set; }
public string[] dollies { get; set; }
public string personalNumber { get; set; }
public string productNumber { get; set; }
}
Dollies 尚未使用。我正在使用 IIS,但还没有找到任何调试服务器端的方法;所有 IIS 日志显示的是一个通用的“500”,没有进一步的细节。
我真的希望我遗漏了一些明显的东西,但是在浏览这些论坛和其他网站一天多一点的时间里寻找答案之后,我有点失去希望了。
【问题讨论】:
-
var succes = "succes"; localStorage.setItem("SuccesVerzenden", succes);肯定是在错误的地方。它需要在成功函数中 - 它可能是这个函数的副本:stackoverflow.com/questions/14220321/… -
您使用的是 .Net Framework 还是 .Net Core?
-
@mplungjan 你是对的,那是在错误的地方,但它也没有导致错误.. ajax 工作得很好,它是第二个(createSendingCeetisFile)回来了出现错误。
-
@Sty 我不确定说实话,我对 Asp.net 还很陌生,虽然我有 C# 的更大背景,但我一直只是使用 Visual Studio。我不是这段代码的原作者,向我保证这一切都非常简单和有效的人,但现在我被困在调试的东西只有一半的理解。
-
了解您是否使用 .Net Core 的简单方法是查看您的项目是否有一个名为
project.json的文件(假设您没有使用 VS 2017,它已经消除了该文件) .如果不是,那么您正在使用 .Net Framework。
标签: javascript c# jquery asp.net ajax