【问题标题】:$.AJAX Post not working in JS but works in Advanced Rest Client$.AJAX Post 在 JS 中不起作用,但在 Advanced Rest Client 中起作用
【发布时间】:2016-02-04 05:13:35
【问题描述】:

我的 JavaScript 无法联系 HttpPost 服务时遇到问题。我可以使用 chrome 的“Advance Rest Client Application”访问相同的签名。但是,当我在 Chrome 的控制台中运行我的代码时,我无法访问该服务。有什么想法吗?我从一个签名和另一个签名中遗漏了什么?如果您需要更多信息,请告诉我。

JS AJAX 请求(卡在 Pending 状态)

    $.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}]

【问题讨论】:

  • 首先是控制台,它的输出是什么?
  • 这是method 不是输入,在type: 'POST'。见Url
  • @BCoder — type 是方法的别名

标签: javascript jquery ajax rest http-post


【解决方案1】:

更改 ajax 请求的 URL

AppContextRootName:你的应用上下文根

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2015-11-19
      相关资源
      最近更新 更多