2012-04-24 8 views
1

ローカルファイルシステム上で実行してXMLファイルを呼び出すように設定しようとしていますが、アクセス制御の起点エラーが発生しました:jquery - クロスドメインエラーなしでローカルファイルシステムからXMLファイルをロード

Originのnullは、Access-Control-Allow-Originによって許可されていません。

私はJSONPするデータ型を切り替えて、trueにクロスドメインを設定しようとしました:

$j.ajax({ 
      crossdomain: true, 
      url: 'xml/vehicles.xml', 
      dataType: "jsonp",  
      success: function(vehicleXML) { 
       supertree.parseVehicles($j(vehicleXML).find("vehicles"), null); 
       supertree.vehiclesLoaded = true; 
       if(supertree.scenesLoaded) supertree.ready(); 
      } 
     }); 

しかし、それは動作しません。どのようにこれを達成するための任意のアイデアですか?好ましくは代理人なしで?

+0

あなたはファイルシステムから作業しているので、制限とブラウザ間の違いの全く新しいリストがあります。たとえば、正しいフラグでchromeを実行しない限り、Chromeはファイルシステムに対するXMLHTTPリクエストを実行できません。他のブラウザは問題なくリクエストを許可することがあります。 XMLの代わりにJSONPに変更することは、それを処理するための最もクロスブラウザの方法です。 –

答えて

2

Same origin policyは、データにアクセスできないようにします。データを要求しているサーバーがCORSを有効にする必要があるか、またはサーバー上のプロキシを使用して他のサーバーからデータを取得する必要があります。

その他のオプションは、XMLデータをJSONP形式に変更することです。 jQueryにJSONPリクエストを行うように伝えるのは簡単ではありません。データ形式はまったく異なり、サーバーはその形式を返さなければならないため、JavaScriptは何もできません。

関連する問題