私は、テストページのjQueryからクロスドメインコールとしてローカルに実行されているWCF WebサービスへのJSONP呼び出しを正常に作成しようとしています。私はある時点で、1012のURIでエラーを拒否されたか、Xmlで応答を受け取ったか、まったく応答がなかったかのいずれかです。現在、私が持っている方法は、それはそれは私がこのWebサービスを書いていないので、私がどこか構成設定をしないのですということは完全に可能であるが、私はとてもイライラになった1012jQueryからWCFへのJSONP呼び出しを完了できません
をバック吐くように構成しました私はここで尋ねるだけで生産性が向上するだろうと考えています。みんなありがとう。以下の詳細。クロスドメインのJSONP呼び出しを経由して、私はjQueryのテストページからこのメソッドを呼び出すしようとしています
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public decimal GetOrderStatusJson(int jobId)
:
は、私は次のような方法でWCF Webサービスを持っています。以下は<script type="text/javascript">
getJsonAjaxObject(
"http://localhost:3960/ProcessRequests.svc/json/GetOrderStatusJson",
{ "jobId": 232 });
function getJsonAjaxObject(webServiceUrl, jsonData) {
var request = {
type: "POST",
contentType: "application/json; charset=utf-8",
url: webServiceUrl,
data: jsonData,
dataType: "jsonp",
success: function(msg) {
//success!
alert("blah");
},
error: function() {
//oh nos
alert("bad blah");
}
};
$.ajax(request);
}
</script>
私は、この目的のために設定してweb.configの塊です:
<services>
<service behaviorConfiguration="MWProcessRequestWCF.ProcessRequestsBehavior"
name="MWProcessRequestWCF.ProcessRequests">
<endpoint address="json" behaviorConfiguration="AspNetAjaxBehavior"
binding="webHttpBinding" contract="MWProcessRequestWCF.IProcessRequests" />
<endpoint address="" binding="wsHttpBinding" contract="MWProcessRequestWCF.IProcessRequests">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MWProcessRequestWCF.ProcessRequestsBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="AspNetAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>