Webmethod在ajax调用中没有被击中
Posted
技术标签:
【中文标题】Webmethod在ajax调用中没有被击中【英文标题】:Webmethod not getting hit in ajax call 【发布时间】:2017-02-22 19:25:30 【问题描述】:我有角度 js 指令,我从那里调用一个函数,该函数具有对 c# webmethod 的 ajax post 调用。
app.directive("fileread", [function ()
return
link: function ($scope, $elm, $attrs)
$elm.on('change', function (changeEvent)
var data = "some json data";
test(data);
);
;
;
]);
指令调用的函数
function test(json_object)
$.ajax(
type: "POST",
url: "/sites/Demo/_layouts/15/demo/demowebmethod.aspx/mywebmethod",
data: json_object,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function(response)
alert(response.d);
);
function OnSuccess(response)
alert(response.d);
调用成功或失败都不会影响 Web 方法,而是控制在 test
函数内部。任何我出错的线索。
【问题讨论】:
您的浏览器控制台中的错误代码是什么?? 函数调用test1
,但你调用的是test
。不可能吧?
@Hazonko 你在哪里看到 test1?
尝试将data: json_object,
更改为data: JSON.stringify(json_object)
-
@VenkataKrishnaReddy 我在控制台中没有收到任何错误,这是问题
【参考方案1】:
$.ajax 中没有 failure
回调:
failure: function(response)
alert(response.d);
将其更改为 error:
或使用承诺
error: function(response)
alert(response.d);
http://api.jquery.com/jquery.ajax/
它可能是由于 web 方法而出错,但您没有看到它。通过将 url 更改为明显不存在的内容来确认,例如“.../mywebmethodxxxxxxx”
【讨论】:
【参考方案2】:将此添加到您的 ajax 调用中。它应该给你一个更好的信息来采取行动。
error: function (request, status, error)
alert('Error: ' + error);
【讨论】:
你确定ajax调用中的路径是正确的吗?要么路径错误,要么需要传入更多参数,要么返回类型与预期不同。 对,所以现在您知道您的 JS 正在调用 webmethod 并且 webmethod(C# 代码)给出了错误。调试 web 方法。以上是关于Webmethod在ajax调用中没有被击中的主要内容,如果未能解决你的问题,请参考以下文章
在对 WebMethod 的 jQuery AJAX 调用中获取空响应,但 Web 方法返回 JSON
JQuery ajax调用asp.net的webMethod
没有从 select2 ajax 调用 Asp dot net Web 方法
对 .NET WebMethod 的 jQuery 调用无序运行
使用jQuery AJAX调用WebMethod时,不会触发ASP.NET 4.0 Custom IHttpModule