$.AJAX Post在JS中不起作用,但在Advanced Rest Client中工作

$.AJAX Post not working in JS but works in Advanced Rest Client

本文关键字:但在 Advanced Rest 工作 Client 不起作用 AJAX Post JS      更新时间:2023-09-26

我的JavaScript无法联系HttpPost服务时遇到问题。我可以使用Chrome的"高级休息客户端应用程序"访问相同的签名。但是,当我在Chrome的控制台中运行代码时,我无法访问该服务。有什么想法吗?我在一个与另一个的签名中缺少什么?如果您需要更多信息,请告诉我。

JS AJAX 请求(停滞在挂起状态)

    $.ajax({
        type: 'POST',
        url: 'http://local/r/GetSettings',
        data: '[{"SourceId":7,"DataType":0},{"SourceId":5,"DataType":1}]',
        dataType: "json",
        success: function(data){
            alert(data)
        },
        error : function (error) {
            alert("Error: " + error);
            console.log("ERROR. not working", error);
        }
    });

C# 服务

    [HttpPost]
    public ActionResult GetSettings(List<Source> sources)
    {
        return new ContentResult
        {
            Content = "{}",
            ContentType = "application/json"
        };
     }

高级 REST 客户端应用程序(成功返回 {})

    http://local/r/GetSettings
    Content-Type: application/x-www-form-urlencoded
    Payload::: [{"SourceId":7,"DataType":0},{"SourceId":5,"DataType":1}]

更改 ajax 请求的 URL

AppContextRootName:您的应用程序上下文根

$.ajax({
     type : 'POST',
     url : '/AppContextRootName/GetSettings',
     dataType : 'json'
});

感谢您的回答。我发现了为什么 Ajax 调用没有执行的问题。我发现您可以在调试器中暂停时执行 AJAX 语句!!所以不要尝试!它将执行并返回和对象,但它将在网络中显示挂起。取消暂停后,将执行实际调用。您应该在成功和错误中使用Alert("Hello world"),一旦取消暂停,您会看到它回来。

相关文章: