Javascript 使用ASP.NET web api为office加载项添加web服务
我已遵循将web服务添加到office 365加载项的步骤。但当我执行发送请求的ajax脚本时,它总是以.fail语句结束。在控制器类、Global.asax或webApiConfig类中,我甚至看不到程序执行一行 这是我的javasript代码片段Javascript 使用ASP.NET web api为office加载项添加web服务,javascript,asp.net-web-api,ms-word,office365,office-addins,Javascript,Asp.net Web Api,Ms Word,Office365,Office Addins,我已遵循将web服务添加到office 365加载项的步骤。但当我执行发送请求的ajax脚本时,它总是以.fail语句结束。在控制器类、Global.asax或webApiConfig类中,我甚至看不到程序执行一行 这是我的javasript代码片段 function GetStyles(ooxml) { var data = { xml: ooxml }; $.ajax({ url: 'api/GetStyles', ty
function GetStyles(ooxml) {
var data = {
xml: ooxml
};
$.ajax({
url: 'api/GetStyles',
type: 'GET',
data: data,
contentType: 'application/json;charset=utf-8'
}).done(function (data) {
showNotification(data.Status, data.Message);
}).fail(function (status) {
showNotification('Error', 'Could not communicate with the server.');
}).always(function () {
// $('.disable-while-sending').prop('disabled', false);
});
}
这是控制器类
public class WriterController : ApiController
{
public class FeedbackRequest
{
public string xml;
}
public class FeedBackResponse
{
public string status;
public string message;
}
[HttpGet()]
public FeedBackResponse GetStyles(FeedbackRequest request)
{
try
{
return new FeedBackResponse
{
status = "success",
message = "success success",
};
}
catch (Exception e)
{
return new FeedBackResponse
{
status = "error",
message = "error error",
};
}
}
}
有人能帮我解决这个问题吗?只要看看代码,就没有什么明显的错误了。但是我可以给你一些关于如何调试的建议
首先,尝试在Office外接程序的上下文之外对此进行调试。它没有任何“附加项”-y。因此,只需在Internet Explorer中启动html页面,或者更好的是,使用Fiddler发出请求。结果应该会揭示外接程序中的错误。只要看看代码,就不会有明显的错误。但是我可以给你一些关于如何调试的建议
首先,尝试在Office外接程序的上下文之外对此进行调试。它没有任何“附加项”-y。因此,只需在Internet Explorer中启动html页面,或者更好的是,使用Fiddler发出请求。结果应能说明外接程序中的错误。检查
中的状态
值。失败
。它可能包含非常有用的信息。请检查.fail
中的status
的值。它可能包含非常有用的信息。迈克尔·兹拉特科夫斯基:谢谢你的建议。我得到的响应是{“Message”:“未找到与请求URI匹配的HTTP资源”,未找到与名为“GetStyles”的控制器匹配的类型。但是您可以看到在我的控制器类中有一个名为“GetStyles”的方法。你有什么想法吗?你提到了“Global.asax或webApiConfig类”。他们呢?谢谢你的回复。我发现了问题。控制器名称应以控制器方法名称开头,以便发送重新请求。例如,在这里,我们用来发送请求的控制器方法是GetStyles。所以控制器名称应该是GetStylesController。这解决了我的问题很高兴你找到了答案!迈克尔·兹拉特科夫斯基:谢谢你的建议。我得到的响应是{“Message”:“未找到与请求URI匹配的HTTP资源”,未找到与名为“GetStyles”的控制器匹配的类型。但是您可以看到在我的控制器类中有一个名为“GetStyles”的方法。你有什么想法吗?你提到了“Global.asax或webApiConfig类”。他们呢?谢谢你的回复。我发现了问题。控制器名称应以控制器方法名称开头,以便发送重新请求。例如,在这里,我们用来发送请求的控制器方法是GetStyles。所以控制器名称应该是GetStylesController。这解决了我的问题很高兴你找到了答案!