2

それで、私は(実際に私たち全員がそうしています)Telerik Kendo UI によるこのクールな WCF Odata サービスを持っています。これは、テスト目的では非常に少数です。

javascriptから呼び出して、結果をアラートとして表示したいと思います。だから、私のコードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript">
        function button(src1) {
        $.getJSON('http://demos.kendoui.com/service/Northwind.svc/Tasks(4)/Start?$format=json', 
            function(json) {
            alert(json.d.Start);
        });
        }
    </script>
</head>
<body>
    <form id="form1">
    <div><input type="button" onclick="javascript:button();" value="Call WCF Service" /></div>
    </form>
</body>
</html>

しかし、それでも Google Chrome コンソールでは、「Origin null は Access-Control-Allow-Origin では許可されていません」というメッセージが表示されます。なんでそうなの?

UPD:奇妙なことは、このコードをどこかのstackoverflowで見つけましたが、私の代わりにこの呼び出しを使用していることです:

$.getJSON('http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=?&minx=-30&miny=0&maxx=0&maxy=150', 
   function(json) {
   alert(json.photos[1].photoUrl);
});

そして、これは機能します。なぜ剣道はしないのですか?

4

2 に答える 2

1

わかりました、VDP のおかげで、剣道でも動作するようにコードを調整することができました。そして、私は彼らのサーバーにアクセスできないので、彼らは実際にjsonpを実装しているようです.

$callback= ? :

$.getJSON('http://demos.kendoui.com/service/Northwind.svc/Tasks(4)/Start?$format=json&$callback=?',
    function(json) {
    alert(json.d.Start);
});
于 2013-08-21T12:34:40.767 に答える