0
我使用$ http.get連接到傳遞2個參數的asmx webservice:用戶名和密碼。但是它返回的是Web服務的HTML頁面而不是數據。 我錯過了什麼?angularjs - webservice返回一個html頁面,而不是數據
,這裏是我的controller.js代碼:
$scope.enterlogin = function(usern,pass)
{
loginService.getUser(usern,pass).then(function(response){
console.log('response is = ' + response.data);
};
}
這裏是我的services.js代碼:
.factory('loginService', ['$http', function($http){
var base_url = "http://<ipaddress of webservie>/UserService3/WebService1.asmx?op=getUserbyUsername";
return {
getUser: function(usern,pass){
console.log('code side usern is = ' + usern + "" + pass);
return $http.get(base_url, { params: { passw: pass, uname: usern}
});
}
}
}])
我還添加這些到Web服務的web.config文件:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
<httpHandlers>
<add verb="GET,HEAD,POST,OPTIONS" path="*.asmx" type="System.Web.UI.PageHandlerFactory" />
</httpHandlers>
而這個:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
,這是在web服務將WebMethod:
[WebMethod]
public string getUserbyUsername(string uname, string passw)
{
string cs = "Data Source =.; Initial Catalog = UsersDB; Integrated Security = True";
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("spGetUserByUsername", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = new SqlParameter(@"Username", uname);
SqlParameter parameter2 = new SqlParameter(@"Password", passw);
cmd.Parameters.Add(parameter);
cmd.Parameters.Add(parameter2);
User user = new User();
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
// user.Username = reader["Username"].ToString();
// user.Password = reader["Password"].ToString();
user.IsExisting = reader["IsExisting"].ToString();
user.UserID = reader["UserID"].ToString();
}
con.Close();
return new JavaScriptSerializer().Serialize(user);
}
}
謝謝。我試着將它改爲.WebServiceHandlerFactory,但它仍然返回一個html頁面。 –
奇數:你是否將方法的響應格式設置爲JSON?有些東西可能像'[ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)]'(很難說沒有看看你的實現究竟出了什麼問題)。 – Femi
我添加了webservice的webmethod的代碼 –