0

ドメイン外のサーバー上の JSON データにアクセスしようとすると、アクセス エラーが発生します。クロスドメイン機能を有効にしようとしましたjQuery.support.cors = true;が、それでも同じ問題が発生します。

次に、この例のページこの記事を見つけ、希望に満ちて、XDomainRequest代わりにXmlHttpRequest. それでも、同じエラーが発生します。

ブラウザー ウィンドウにアドレスを入力すると、データが表示され、画面に表示されます。機能させるために何を変更/探すことができますか? (考えられるすべての例を試しましたが、今は空白にしています。)

以下のコードを実行しています。

var xdr = new XDomainRequest();
xdr.onload = function () { alert(xdr.responseText); }
xdr.open("GET", "http://blopp.json");
xdr.send();

ユーザーに何かをアクティブ化するように依頼することはできません。さらに、それらの多くは制限の厳しいドメインにあると予想されるかもしれません (そして 90% 以上が IE にあり、少なくともバージョン 8 になることを願っています)。

編集:

ヘッダーは次のとおりです。

リクエスト ヘッダー:

ステータス コード:200 OK
Request Headersview parsed
GET /AppositelabRestService/api/EnvelopeTemplate/12345 HTTP/1.1
ホスト: appositech.hosterspace.com
接続: キープアライブ
キャッシュ制御: max-age=0
ユーザー エージェント: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (Gecko のような KHTML)
Chrome/22.0.1229.94 Safari/537.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
Accept-Encoding : gzip,deflate,sdch
Accept-Language: sv,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

応答ヘッダー HTTP/1.1 200 OK
Cache-Control: no-cache
プラグマ: no-cache
Content-Type: application/xml; charset=utf-8
有効期限: -1
サーバー: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
日付: 水曜日、2012 年 11 月 7 日 09:53:19 GMT
コンテンツの長さ: 394

4

1 に答える 1

1

サーバーは、次のような CORS (Cross-Origin Resource Sharing) ヘッダーを送信して明示的に許可する必要があります。

Access-Control-Allow-Origin: *

そうしないと、同じオリジン ポリシーが適用され、それを実行できなくなります。

ところで、フラッシュは crossdomain.xml を使用するため、サーバーがそのようなファイルをホストしている場合は、フラッシュを介してリクエストを行うことができます。

残念ながら、http://appositech.hosterspace.com/crossdomain.xmlは 404 です。

于 2012-11-07T10:00:43.763 に答える