【问题标题】:Jquery ajax not hitting the controllerJquery ajax没有击中控制器
【发布时间】:2016-05-07 04:24:37
【问题描述】:

我遇到了一个很奇怪的问题。就这样吧。

我正在使用一个与 webapi 控制器和服务层等对话的淘汰 js 应用程序。

我有剑道网格,在编辑一行之后,在页面中调用一个事件,并在事件中进行 ajax 调用以将数据发送到 webapi 控制器。

现在有趣的是,当我在 .js 文件中放置断点并放置 F12 时,控件将到达控制器,否则它只是跳过。完全不知道发生了什么。

ajax 代码是:

$.ajax({
         url:controller,
         type:"PUT",
         data:"em",
         datatype:'json',
         success:function(result){
}
});

[HttpPut]
[OdataRoute("PutDataController")]
public async Taask<string> PutDataController(HttpRequestMessage par)
{
 //Do something
}

我也尝试给出 'async' : false,但它不起作用

【问题讨论】:

  • 那么,您是说没有提出请求?你确定你有正确的网址吗?您是否启用了 CORS?
  • 如果您使用的是tomcat服务器,默认情况下不启用PUT

标签: javascript jquery ajax asp.net-web-api knockout.js


【解决方案1】:

尝试将数据设置为对象而不是字符串:

$.ajax({
         url:controller,
         type:"PUT",
         data: {myvar: "em"},
         datatype:'json',
         success:function(result){}
});

使用data: {myvar: "em"} 而不是data:"em"

【讨论】:

    【解决方案2】:

    您应该向该 ajax 调用添加一个错误函数,以便您可以访问该异常。

    var form = $("#form");
    var data = form.serialize();
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: data,
        dataType: "json",
        success: function (message) {
            alert("GREAT!");
        },
        error: function (xhr, status, error) {
            alert("Error: " + xhr.responseText);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 2017-11-03
      • 1970-01-01
      相关资源
      最近更新 更多