私はオンラインでたくさんの例を見ていますが、サービスを単独で使うべきか、それとも消費するアプリケーションと同じソリューションにするのか混乱しています。誰か助けてくれますか?jQueryを使用してASP.NET WebページにWCF WebサービスへのAJAX呼び出しを追加するにはどうすればよいですか?
は、私は私のASP.NET WebアプリケーションにタイプAJAX対応WCFサービスのファイルを追加する必要があるか、私は私のWCFサービスへのWebサービスの参照が必要なのですか?
jQuery Ajax関数を使用すると、URLパラメータがあります。私が見るすべての例は "
Services/MyService.svc/MyMethodName
"です。これは、サービスがWebアプリケーションのソリューションの内部にあるためですか?は私のWCFサービスを持っている必要がない:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
私のWebサービスの呼び出しは、以下の属性を持っている必要がありますか?
[WebInvoke(方法= "POST"、 bodyStyle属性= WebMessageBodyStyle.Wrapped、 ResponseFormat = WebMessageFormat.Json)]
は私のWebアプリケーションや私のWebサービスが
enableWebScript
に設定動作を必要としていますか?
必要な属性や設定がありませんでしたか?ここで
は、私のWebアプリケーションでの私のjqueryのAJAX要求である:ここで
$.ajax({
type: "POST",
url: "http://myserver/myservice.svc/mymethod",
contentType: "application/json; charset=utf-8",
data: "{" + args + "}",
dataType: 'json',
});
は自分のWebサービスのweb.configファイルである:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Basic" />
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehavior" name="MyServiceName">
<endpoint address="basic"
binding="basicHttpBinding"
bindingConfiguration="Basic"
name="Basic"
contract="IService" />
<endpoint address="web"
behaviorConfiguration="webHttpBehavior"
binding="webHttpBinding"
name="Web"
contract="IService" />
<endpoint address="mex"
binding="mexHttpBinding"
name="Metadata"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
私は#2を理解していません。私のasp.net Webアプリケーションがソリューション内にWebサービスを持っていないが、Webサービスがdevサーバー上でホストされている場合、私のURLは何であるはずですか?私はdevサーバーのhttpに絶対アドレスを使用する必要がありますか? – hyprsleepy
絶対パスは常に有効ですが、WCFは解決する限り使用するものを気にしません。あなたの場合、絶対的なサービスURLが必要なように聞こえます。 – PTiddy
JSONを使用している場合、WCFサービスはbasicHttpBinding以上のものが必要ですか? webHttpが必要ですか? – hyprsleepy