我正在开发asp.net Web表单应用程序。我试图在代码隐藏中对web方法进行ajax调用,但不返回结果,而是返回整个html页面。
我按下按钮
来调用它 <input type="button" id="btnCallAPIFromClient" class="btn btn-success" value="Call API from Client"/>
我的js脚本是:
$(document).ready(function() {
//PageMethods.set_path(PageMethods.get_path() + '.aspx');
$('#btnCallAPIFromClient').click(function() {
alert('here');
$.ajax({
url: '/login/GetAccessToken',
type: "POST",
dataType: 'html',
success: function(response) {
alert(response);
debugger;
sessionStorage.setItem("accessToken", response.access_token);
alert(response.access_token);
},
// Display errors if any in the Bootstrap alert <div>
error: function(jqXHR) {
alert(jqXHR.responseText);
}
});
});
});
webmethod是:
[WebMethod]
public static string GetAccessToken()
{
return "abc";
}
答案 0 :(得分:0)
这是因为您已将数据类型设置为html。 将数据类型更改为文本,如下所示:
dataType: 'text'
并且在成功功能中也改变了这一行
sessionStorage.setItem("accessToken", response.access_token);
要
sessionStorage.setItem("accessToken", response);
因为您没有以json格式接收数据。所以这将是无效的。