2012-01-05 10 views
0

データを受け取り、データベースにポストし、結果を返すWebサービスを作成しようとしています。私はそれを行うすべてのC#コードを書く方法を知っていますが、私が問題を抱えているのはコミュニケーションです。現時点では、私はちょうど私のjQueryがjqueryを使用してC#webserviceを呼び出す

...(私は私がやっている見当がつかないので、私は単純なもので始まる)サービスを起動し、「Hello Worldのを」取り戻すしようとしています:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "PersonService.asmx/HelloWorld", 
    data: "{}", 
    dataType: "json", 
    success: function(msg) { 
    alert("Success"); 
    $("#log").html(msg); 
    alert(msg); 
    } 
}); 

私のWebサービス:

public class PersonService : System.Web.Services.WebService 
{ 
~ 

    [WebMethod(CacheDuration = CacheHelloWorldTime, 
    Description="As simple as it gets - the ubiquitous Hello World.")] 
    public string HelloWorld() 
    { 
     return "Hello World"; 
    } 
~ 
} 

要素を点検するためにクロムを使用して、[ネットワーク]タブを選択し、自分のWebサービスを見つけた後、それは結果であったことを私に示しています

<?xml version="1.0" encoding="utf-8"?> 
<string>Hello World</string> 

サービスが正常に実行されたようですが、成功関数は起動せず、コンソールにエラーはありません。何が起こっている?また、XMLの結果はなぜですか?

Webサービスを使用する必要がありますか、フォーム送信と同じ方法で処理するASPXページに変数をAJAX経由で送信するだけですか?

+1

XMLを使用しているため、結果はXMLです。これはXMLです。あなたは何を期待しましたか? –

答えて

2

Using jQuery to Consume ASP.NET JSON Web Services » Encosia

$(document).ready(function() { 
    $.ajax({ 
    type: "POST", 
    url: "RSSReader.asmx/GetRSSReader", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     // Hide the fake progress indicator graphic. 
     $('#RSSContent').removeClass('loading'); 

     // Insert the returned HTML into the <div>. 
     $('#RSSContent').html(msg.d); 
    } 
    }); 
}); 

また、あなたはあなたのサービスクラスにWebサービスメソッドの[ScriptMethod][ScriptService]を逃しています。

[WebService] 
[ScriptService] 
public class PersonService : WebService 
{ 
    [ScriptMethod] 
    [WebMethod(CacheDuration = CacheHelloWorldTime, 
    Description="As simple as it gets - the ubiquitous Hello World.")] 
    public string HelloWorld() 
    { 
     return "Hello World"; 
    } 
} 
+0

ええ、コードの一部を入手したところですが、期待した結果が得られません... –

+1

@Irfanjamal:あなたのサービスクラスに '[ScriptService]'属性があることを確認してください。これはJSON出力に必要です。 –

+0

ありがとう、Dave。私は自分の答えを更新しました。 – jrummell

関連する問題