WCF レスト サービスへのクロス ドメイン POST を作成しようとしています。以下は、リクエストを取得する私のサービスコードです
[WebInvoke(UriTemplate = "", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public SampleItem Create(SampleItem instance)
{
instance.StringValue += " -success";
return instance;
}
クライアント側では、次のjquery ajax呼び出しがあります
var input = { "Id": 10, "StringValue": "Test Value" };
$("#post").click(function () {
$.ajax({
type: "POST",
url: "http://localhost:50577/Service1/",
dataType: "jsonp",
data: JSON.stringify(input),
processData: false,
success: function(item) {
$("#itemId").val(item.Id);
$("#name").val(item.StringValue);
},
error: function(xhr) {
alert("error " + xhr.responseText);
}
});
サーバー側でコードをデバッグすると、リクエストはメソッドに送信されますが、インスタンス引数は null です。同じプロジェクトで、クロス ドメインの get を使用していますが、これは問題なく動作しています。クライアントを同じドメインに変更し、データ型を json に変更すると、正常に動作します。
では、クロスドメイン投稿は不可能ですか? または、これを機能させるために他に何かする必要がありますか。