4

かなりの頭痛の種を引き起こしている同一生成元ポリシーのように見えるものに遭遇しています!

追いかけるために、私は基本的に、ユーザー名のみを指定したときにユーザーのsteam64idを取得しようとしています。

たとえば、私のユーザー名:「Emperor_Jordan」に移動します。

http://steamcommunity.com/id/emperor_jordan?xml=1

そして、私が必要とするsteamidは一番上にあります。そこで、JQuery Ajaxを使用してこれを取得し、後で使用するために必要なIDを解析することにしました(steamapiの使用にはsteam64idが必要です)。問題のコードのスニペットは次のとおりです。

$.ajax({
url: "http://steamcommunity.com/id/emperor_jordan/?xml=1",
datatype: "xml",
complete: function()
{
    alert(this.url)
},
success: parse
});

function parse(xml)
{
    alert("parsing");
    _steamID = $(xml).find("steamID64").text();
}

ここでの問題は、完了のアラートを受け取っている間、「解析」が表示されないことです。これまで。それはそのコールバックを決して受け取らないので、私はSOP(同一生成元ポリシー)にぶつかっていると信じるようになります。

私はこれに間違った方法でアプローチしていますか、回避策はありますか?

ありがとう!

4

2 に答える 2

5

正しい。同一生成元ポリシーに遭遇しています

XMLHttpRequest cannot load http://steamcommunity.com/id/emperor_jordan/?xml=1. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

SteamはJSONPのようなクロスオリジンソリューションを提供していないようです。つまり、古いが信頼できるソリューションに戻ることができます。つまり、ブラウザではなくサーバーでデータをフェッチします。


Steam Web APIに関するいくつかの関連するフィードバック:https ://developer.valvesoftware.com/wiki/Steam_Web_API/Feedback#API_Considerations_for_Web_Developers

于 2012-10-31T03:39:34.360 に答える
1

データを取得するには、Herokuにプロキシサーバーを作成する必要があります。Corsは、サーバー間の相互作用ではなく、ブラウザに直接データを呼び出すように制限しています。したがって、リクエストを送信し、私たちに代わってデータを受信するためのプロキシサーバーが必要です。それは私のために働いています。

前もって感謝します。

于 2020-12-07T07:29:10.473 に答える