簡體   English   中英

Javascript Ajax調用asp.net webmethod,內部服務器錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM