JSON 形式のデータを返す WCF サービスがあります。Web ブラウザを使用すると結果を簡単に確認できますが、Jquery getJSON を使用すると動作しません。私はそれがデータを返していることをフィドラーで見ることができますが、ファイアバグでは赤いフォントと空の応答で表示されます。
ここに私のWCFサービスがあります
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetUrl/{iType}")]
String GetUrl(string iType);
public String GetUrl(string iType)
{
return strurl;
}
私のJSON呼び出しは次のようになります
$.getJSON("http://localhost/UrlSvc/UrlService.svc/GetUrl/1",
function (data) {
console.log("Data JSOn Got");
$.each(data.items, function (i, item) {
console.log("Data Received");
});
});
そのURLをブラウザに入力すると、期待どおりに以下の応答が得られます
{"GetChartUrlResult":"ulr_fdba9bc2-7ff7-467f-a6e0-6f4d234169d2.png"}
しかし、getJSOn は、URL 自体に赤いフォントの Firebug に見られるように、空の応答を返します。これはクロスドメイン呼び出しであり、クロスドメインを有効にしました WCF