我从angularjs打电话给我的web服务
这是我的密码
$http.get('loginservice.asmx/validatelogin', {
params: {
username: $scope.txtlogin,
password: $scope.txtpass
}
})
.then(function (response) {
alert('login success');
})这是我拖放web服务时的路径。
<a href="~/loginservice.asmx">~/loginservice.asmx</a>但是当我点击登录按钮
我遇到了错误,这就是我的道路
/login/~/loginservice.asmx/validatelogin?password=123&username=minesh错误是(找不到资源文件)
我的web服务
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
using System.Data.SqlClient;
using TaskManager.App_Code;
namespace MVC5TMS
{
/// <summary>
/// Summary description for loginservice
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class loginservice : System.Web.Services.WebService
{
DbFunction dbf = new DbFunction();
Crypto cry = new Crypto();
JavaScriptSerializer js = new JavaScriptSerializer();
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
[ScriptMethod(UseHttpGet =true)]
public void validatelogin(string username, string password)
{
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@LoginName", username);
cmd.Parameters.AddWithValue("@Password", cry.Encrypt(password));
cmd.Parameters.AddWithValue("@Prompt", "SELECT");
SqlDataReader reader = dbf.ExecuteSP_Reader("User_SIDU", cmd);
if (reader.Read())
{
Context.Response.Write("success");
reader.Close();
}
else
{
Context.Response.Write("fail");
reader.Close();
}
reader.Close();
}
}
}这里怎么了?
发布于 2017-02-02 12:59:59
您在$http.get中从一个具有/login/的页面提供了一个相对路径,因此这两个路径连接到/login/~/loginservice.asmx/validatelogin?password=123&username=minesh中,而正确的路径似乎是/loginservice.asmx/validatelogin
尝试在请求中使用以/开头的路径。
$http.get('/loginservice.asmx/validatelogin',...)
这应该会导致正确的路径。
发布于 2017-02-02 12:49:03
如果您使用的是params,请如下所示:
$http({
url: "/Home/CallMe",
method: "GET",
params: {number: 4, name: "angular"}
});有关更多详细信息,请参阅以下答案不能调用具有参数的AngularJs控制器的Mvc控制器动作
有几处你可以做的修改
[System.Web.Script.Services.ScriptService],因为它指示可以从脚本调用Web服务。请参考ScriptService文档。<system.web> <webServices> <protocols> <add name="HttpGet"/> </protocols> </webServices> </system.web>有关更多细节,请参见此视频在AngularJS中使用$http使用ASP.NETWeb服务。
https://stackoverflow.com/questions/42000358
复制相似问题