簡體   English   中英

Javascript AJAX無法在ASP.NET C#上運行並返回404

[英]Javascript AJAX not working on ASP.NET C# and returns a 404

我有一個前端代碼,可以將POST請求發送到服務器,但由於服務器需要此信息,因此不返回任何內容。但是在Chrome的日志中,我看到了404謝謝,

加載資源失敗:服務器響應狀態為404(未找到)

以下代碼向服務器發送請求:

 var data = "hi" var theIds = JSON.stringify(data); var UrlFixer = '/Process/Complete'; // Make the ajax call $.ajax({ type: "POST", url: UrlFixer, contentType: "application/json; charset=utf-8", data: { ids: theIds }, dataType: "json", success: function (result) { alert('Yay! It worked!'); }, error: function (result) { alert('Oh no :('); } }); 
后端(C#):

  using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Quiz3 { public class Process { [HttpPost] public static void Complete(string[] ids) { String[] a = ids; } } } 

您可以從下面的代碼獲得幫助以發送數據。

您不必以{ids:theIds}的形式提交字符串項。您必須將表單更改為JSON.stringify(data)。

var data = "Your Name";
$.ajax({
    url: '/home/Complete',
    type: 'POST',
    data: JSON.stringify(data),
    contentType: 'application/json; charset=utf-8',
    success: function (data) {
        alert(data.success);
    },
    error: function () {
        alert("error");
    }
});

而且您的課程不應簡單。 您必須具有控制器類

后端:

public class HomeController : Controller
{

    [HttpPost]
    public void Complete(string Name)
    {
        //Code ...
    }
}

也許將您的ID作為ID列表發送,而不對列表進行字符串化

public static void Complete(List<T> Ids)

我設法通過以下方法將此與MVC空模板一起使用:

首先創建一個控制器(在controller文件夾中),並將其命名為'SubmitController'。現在我首先認為命名控制器並不重要,但事實證明確實如此,URL為'/ Submit'而不是'/ SubmitController'。 在C#文件中創建了一個函數,我用POST屬性(HttpPost)稱它為'Process'.URL現在是'/ Submit / Process'。在我的情況下,我需要將一個數組從客戶端傳遞到服務器,然后那是C#中用來處理它並顯示在Visual Studio的“輸出”頁面上的多余代碼。

SubmitController.cs

 using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace MvcApplication1.Controllers
    {
        public class SubmitController : System.Web.Mvc.Controller
        {
            [HttpPost]
            public PartialViewResult Process(string myArray)
            {
              String[] Items = myArray.Split(new char[] { ','}, StringSplitOptions.RemoveEmptyEntries);
              //print
               Items.ToList().ForEach(i => System.Diagnostics.Debug.WriteLine(i.ToString()));

                return null;
            }
        }
    }

SendEvent.js

// Make the ajax call
            var myArray = data; 
            $.ajax({
                type: "POST",
                url: '/Submit/Process',
                data: { 'myArray': myArray.join(',') }, 
            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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