私はWCFの「POST」メソッドを使用しようとしているが、私はそれを使用することはできません、私は私のWCFサービスで使用できる唯一のことはあるメソッドが、問題を「GET」私はオブジェクトを送信する "POST" メソッドを使用しようとすると起動します。エラー400不正な要求AJAX(WCF)
ここでは、私の契約
[ServiceContract]
public interface Itest
{
[WebGet(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
string Hello();
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
void AddObject(Person p);
[WebGet(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
string TurnBack(string Name);
}
私のオブジェクトがあります。
namespace Mywcf
{
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
}
}
私の実装:(私のスクリプトを含む)
namespace Mywcf
{
public class Implementacion : Itest
{
public string Hello()
{
return "Hi";
}
public void AddObject(Person p)
{
string Name = p.Name;
TurnBack(Name);
}
public string TurnBack(string Name)
{
return Name;
}
}
}
マイ.ASPX:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="scripts/jquery-3.2.1.js"></script>
<!--This SCRIPT Use my WCF as a 'GET'Method and works really good-->
<script>
$(document).ready(function() {
$("#btnHi").click(function() {
Hello();
});
});
function Hello() {
$.ajax({
url: "http://localhost:83/Mywcf/Service.svc/Hello",
dataType: "json",
data: "{}",
type: "GET",
contentType: "application/json; utf-8",
success: function(msg) {
try {
alert(msg);
} catch (Exception) {}
},
error: function(result) {
alert("Error " + result.status + '' + result.statusText);
}
});
}
</script>
<!--This SCRIPT has many issues (404 BAD REQUEST)I use the WCF as a 'POST' Method-->
<script>
$(document).ready(function() {
$("#btnConfirm").click(function() {
var name = $('#txtTest').val();
Insert(name);
});
});
function Insert(name) {
var objectPerson = {
"Name": name
};
var stringJ = JSON.stringify(objectPerson);
$.ajax({
url: "http://localhost:83/Mywcf/Service.svc/AddObject",
dataType: "json",
data: "{'p':" + stringJ + "}",
type: "POST",
contentType: "application/json; utf-8",
success: function(msg) {
try {
alert(msg);
} catch (Exception) {
alert(Exception);
}
},
error: function(result) {
alert("Error " + result.status + '' + result.statusText);
}
});
}
</script>
<title>TESTING WCF</title>
</head>
<body>
<input type="button" id="btnHi" value="Hello" /> <br />
<input type="text" id="txtTest" placeholder="Tip a Name" />
<input type="button" id="btnConfirm" value="Ok" />
</body>
</html>
私はこの問題は、契約またはときに私はAJAXを呼び出す内部ヘッダにあると思います。
を私が言った404 ERROR持っている: "400 BAD REQUEST" は –
WCFと呼ばれるサービスのための最高のアイデアではありませんがJavascriptのようなクライアントによるRESTを通して。このためには、ASP.NET Web APIのようなより特殊なフレームワークを使用する必要があります。ここ –
問題は、私はソフトウェアのプログラミングを勉強し、教授が、それはWCFを使用して...彼らはこのプロジェクトのためのWeb APIを許可していませんでした... #WhatAShame –