У меня проблема с отправкой html-тегов из моего углового приложения на мой веб-сервис ASP.NET. Я понял, что мне, вероятно, пришлось его кодировать. Но даже при кодировании я получаю внутреннюю ошибку сервера 500. Если я просто присваиваю значение переменной postcontent, такой как postcontent = "test", она отлично помещается в web-сервис.
Я зарегистрировал и предупредил переменную postcontent, чтобы убедиться, что она закодирована и что она делает.
Настолько ясно webservice не получает мою строку html и я удивляюсь почему. Ниже мой код $ scope.CreatePost = function() {
var graveId = $location.search()['gravid'];
// get CKEDITOR value is structured like <p>placeholder</p>
var getcontent = CKEDITOR.instances['postEditor'].getData();
var postcontent = escape(getcontent);
$http({
method: 'POST',
url: 'http://localhost:51113/WebService.asmx/OpretPost',
data: "username=" + userName + "&password=" + passWord + "&graveId=" + graveId + "&content=" + postcontent,
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }
}).then(function (response) {
console.log(response.data);
});
}
[WebMethod]
public void OpretPost(string username, string password, string graveId, string content)
{
/*Context.Response.Write(content);
var Customer = (from x in db._Users where x.UserPassword == password && x.UserName == username select x);
if (Customer.Count() > 0)
{
_Post nypost = new _Post
{
FK_GraveId = int.Parse(graveId),
FK_UserId = Customer.Single().UserId,
PostContent = content,
PostDate = DateTime.Now
};
db._Posts.InsertOnSubmit(nypost);
db.SubmitChanges();
}*/
}
WebMethod должен вернуть значение, если вы хотите. .then
в запросе POST. Попробуйте изменить void на строку, а затем верните действительную строку, например: "OK".