我有这个 JQuery AJAX 代码,它使用签名调用 ASP.NET Web 服务方法: “公共(public) bool ValidateUser(字符串用户名,字符串密码)” 它应该返回真/假。 AJAX 不会抛出任何错误,但也无法正常工作。
<script>
$('#btn').click(function () {
var a=$('#name').val(), b=$('#pass').val();
$.ajax({
url:'http://localhost:22664/StockServices.asmx/ValidateUser',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ username: a, password: b }),
dataType: "json",
method: 'post',
success: function (data) {
alert("Msg: " + data.d);
}, error: function (err) { alert("failed");
console.log(err); }
});
});
</script>
最佳答案
要使您的 .asmx
服务能够从 javascript 调用,您需要将此属性添加到 .asmx
服务定义中:
[System.Web.Script.Services.ScriptService]
因此您的完整服务可能如下所示:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class StockServices : System.Web.Services.WebService
{
[WebMethod]
public bool ValidateUser(string username,string password)
{
System.Diagnostics.Debugger.Break();
return true;
}
}
还要小心使用url:'http://localhost:22664/StockServices.asmx/ValidateUser'
,因为当此代码部署到生产环境时,它将不再工作。您可能想要更改它到:
url:'StockServices.asmx/ValidateUser'
关于javascript - JQuery AJAX 不会抛出错误,但也不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39181999/