0
私は$ http.getを使用してasmx webserviceに2つのパラメータ(ユーザー名とパスワード)を渡しています。しかし、データの代わりに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のコードを追加しました –