1

VS 2010 で 2 つの単純なメソッド (1 つの GET、別の POST) で Restfull WS を作成しました。それらは次のようになります。

[ServiceContract]
public interface IService1
    {

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "createUser")]
    string createUser();

    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "loginUser/{email}/{password}")]
    string loginUser(string email, string password);

    }

これらのメソッドの定義は簡単です:

public class Service1 : IService1
    {

 public string createUser()
        {
            return "Successful POST call !!! ";
        }

 public string loginUser(string email, string password)
        {
            return "Successful GET call !!! " + email + " - "+ password;
        }
  }

このサービスを IIS に公開し、ブラウザーでメソッドをテストしました (loginUser (GET) メソッドのみ、ブラウザーで createUser (POST) メソッドをテストできません) とメソッド (loginUser ) は正常に動作します。jQuery AJAX でメソッドを呼び出そうとすると、通知なしで常にエラー呼び出しが発生します。フィドラーをチェックしたところ、正しい応答があります。

私のAjaxメソッド:

$(document).ready(function(){

$("#button2").click(function(){

  $.ajax({
   type: "GET",                 
   url: "http://localhost/AutoOglasi/Service1.svc/loginUser/bole/bole",

   success: function (response) {
    alert("respons  "+response);
   },
       error: function (request, status, error) {
    alert(request.responseText+" -- " + status + " --- "+ error);
   }
     });                

});

});

私は mozilla firebug i section XML 私はこれを取得します:

XML 解析エラー: 要素が見つかりません場所: moz-nullprincipal:{ba25ef4a-f215-486e-b965-e70714c5af31} 行番号 1、列 1: ^

フィドラーが私に良い反応を与えているので、私はここで間違っていることを理解できませんか?

4

1 に答える 1

0

あなたが述べResponseFormat = WebMessageFormat.XmlResponseFormat、あなたが返すものはxmlではなく文字列です。最初の文字は < であると予想されますが、S であるため、位置 1 で要素が見つかりません。

于 2012-12-17T13:03:03.563 に答える