0

jQueryによって呼び出されるWCF Webサービスを開発しました。WCF Web サービスと、WCF Web サービスを有効にする AJAX クライアントは、異なる Web サーバーで実行されています。

Web サービスの定義は次のとおりです。

[ServiceContract]
 interface IPersonService
 {
   [OperationContract]
   Person InsertPerson(Person person);
 }


[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class PersonService : IPersonService
{
  ...

  [WebInvoke(UriTemplate = "/POST/PersonPost", Method = "POST", BodyStyle =           WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
  public Person InsertPerson(Person person)
  {
      Debug.WriteLine("POST:[PersonId = {0} PersonName = {1}]", person.Id, person.Name);
             return new Person(person.Id, person.Name);
  }

}
[DataContract]
public class Person
{
    [DataMember]
    private string id;
    [DataMember]
    private string name;

    public Person(string id, string name)
    {
        this.id = id;
        this.name = name;
    }

    public string Id { get; set; }
    public string Name { get; set; }

    public override string ToString()
    {
        var json = JsonConvert.SerializeObject(this);
        return json.ToString();
    }
}

クライアントは次のとおりです。

$.ajax({
  type: "POST",
  data: { "id": "Mehrere ;;; trennen", "name": "GetPerson" },
  contentType: "application/json; charset=utf-8",
  dataType: "jsonp",
  processData: false,
  crossDomain: true,
  url: "http://localhost:59291/Person/POST/PersonPost",
  success: function (data) {
    alert("Post erfolgreich: ");
  },
  error: function (xhr, ajaxOptions, thrownError) {
    alert("Fehler Post: Status " + xhr.status + " AntwortText " + xhr.responseText);
  }
});

HTTP コード 200 が表示されます。それは悪いことではありませんか? しかし、jQueryクライアントがWCFサービスに送信するデータにアクセスするにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

jsonp データ型を使用している場合は、データを返すときに json コールバックを処理する必要があります...

jsonCallback(Your json response goes here);

元:

      jsonCallback(
    {
        "sites":
        [
            {
                "siteName": "JQUERY4U",
                "domainName": "http://www.jquery4u.com",
                "description": "#1 jQuery Blog for your Daily News, Plugins, Tuts/Tips & Code Snippets."
            },
            {
                "siteName": "BLOGOOLA",
                "domainName": "http://www.blogoola.com",
                "description": "Expose your blog to millions and increase your audience."
            },
            {
                "siteName": "PHPSCRIPTS4U",
                "domainName": "http://www.phpscripts4u.com",
                "description": "The Blog of Enthusiastic PHP Scripters"
            }
        ]
    }
);
于 2013-03-21T13:11:11.907 に答える
0
  1. JSON のデータは、私には少し奇妙に見えます。私は JSON の専門家ではありません。しかし、私がそれを書くとしたら、私は次のようになります:

    var body = '{"person":{';
    body = body + '"id":"' + '"abc123"' + '",'
    body = body + '"name":"' + '"john"' + '"'
    body = body + '}}'; 
    

次に、「data:」の値を「body」変数に等しく設定します

            dataType: "json",
            data: body,

この方法でデバッグ行を追加できることに注意してください

alert(body);

コードで(作成後)データを表示します(リクエストを介して送信する前)。

..........

2番。

ここで私の古い会話をチェックしてください:

WCF REST サービス内での CORS サポート

なんで?

私はいくつかの問題にぶつかったので、あなたが持っていたとき

"http://localhost:59291/"

その記憶のきっかけ。

于 2013-03-21T13:41:16.963 に答える