0

次のコードがあります。別のドメインアドレスからデータを取得するために使用しました。私のローカルネットワークで。ここで私が何を間違えたか、または解決策を教えてください。

<html>
  <title>Jquery Json</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    jQuery(document).ready(function($){
      $.ajax({ // ajax call starts
        type:"GET",
        async: false,
        cache: false,
        contentType: "application/json; charset=utf-8",
        crossDomain: true,
        //url: "http://10.1.128.107/JsonDohaBackToTemplate/getProjectIDByMAC.svc/media/?projectid=1",
        url: "http://fantasy.premierleague.com/web/api/elements/415/?_=1357337284504", 
        success: function(data) {
          $("body").append(JSON.stringify(data));
        }, 
        error: function(jqXHR, textStatus, errorThrown) {
          alert(jqXHR.status);
        },
      dataType: "jsonp"
    });
  });
  </script>
  </head>

  <body>
  </body>
</html>
4

2 に答える 2

0

呼び出しから次を削除します: async、cache、crossDomain、contentType、および error。これらはすべて、クロスドメイン呼び出しを行うために必要なわけではありませんが、通常の呼び出しを行っているように見えるため、機能しない理由である可能性があります. たとえば、クロスドメインではエラー ハンドラが呼び出されることはありません

最低限必要なものは次のとおりです。

$.ajax({
                        url: '',
                        success: function (data, textStatus, jqXHR) {     
                        },
                        dataType: 'jsonp'
                    });

更新: jsonp ではなく XML を取得しているため、2 つの選択肢しかありません。

1) サーバーにアクセスできる場合は、応答に次のヘッダーを追加します。

name="Access-Control-Allow-Origin" value="*"
 name="Access-Control-Allow-Headers" value="Content-Type"

2) サーバー側のプロキシを使用する

于 2013-08-14T09:15:50.983 に答える