![](/img/trans.png)
[英]ASP.NET 500 Internal Server Error while calling webmethod from javascript
[英]Javascript Ajax call to asp.net webmethod, Internal server error
我有一個網頁,它允許用戶在序列號掃描一段JavaScript代碼,然后將其應發送到那些一個WebMethod,其中一個數據庫,它記錄和txtfile被制成。
Web方法中的內容無關緊要,因為代碼永遠不會運行。 (即使刪除整個方法,只是將布爾值更改為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() {}
});
}
要使功能達到頂峰,我會在日志中收到“ success SendingReady”消息。 但是底層函數(由頂層函數調用)沒有。 我已經嘗試了所有方法,從將數據作為4個單獨的實例發送到更改Ajax調用中的選項,再到更改收件人的Web方法。 這就是說的webmethod:
[System.Web.Services.WebMethod]
public void createSendingCeetisFile(SendingErrors cnt)
{
//unimportant code that doesn't ever run anyway;
}
與sendErrors是:
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; }
}
娃娃尚未被使用。 我正在使用IIS,但尚未找到調試服務器端的任何方法。 所有IIS日志顯示的都是通用的“ 500”,沒有更多詳細信息。
我真的希望我缺少明顯的東西,但是在瀏覽了這些論壇和其他網站並在一天之內尋找答案之后,我有點失去了希望。
謝謝M Adeel Khalid和mplungjan的幫助。 盡管您的回答都不是直接的答案,但理解給我的幫助使我有了嘗試從另一個函數中刪除該函數,然后直接從按鈕中調用它的想法。 這成功了。 我仍然遇到一個奇怪的錯誤,但是該函數完成了它應該做的所有事情,將記錄保存到數據庫中並將其寫到文件中以供其他程序使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.