2012-02-17 15 views
2

私は、私のものではないサービスからXML情報を取得しようとしています。 基本的に、ユーザーは他のサービスで認証され、スクリプトはサイト間で認証Cookieを使用して情報を取得します。jqueryを使用したクロスサイトXML応答の取得

私はこれを行うためにjqueryを使用していますが、処理したい応答が(firebug経由で)サービスから返されていることがわかります。jsonpを使用しているのでjquery解析エラーを返します。

私はこの種の操作を行うために遭遇したすべてのソリューション、YQLやプロキシサーバーを試しました。

ここで私の欲求不満は私が望む応答を見ているが、jqueryは生の情報を私に与えていないということです。

私はjsonレスポンスを期待する関数を呼び出していることを知っていますが、これに対する回避策や他の方法はありません。 xmlp xDのように。

$.ajax(
     { 
      url: "serviceurl", 

      dataType: 'jsonp', //I've tried 'jsonp xml' 


      crossDomain: true, 
      xhrFields: { 
       withCredentials: true 
      }, 
      success: function() 
      { 
       alert('Load was performed.'); 
      }, 

      error: function(jqxhr,error) 
      { 
       alert('Failed!'); 
      }, 

     }); 

編集:ここでは、サーバからの出力は、単に他のドメインは、CORSをサポートしていない限り、クロスドメインのソースからXMLを要求することはできません

<User> 
DVD_PT 
</User> 
<Apps> 
<App> 
    <name>Last.fm Scrobbler</name> 
</App> 
</Apps> 

おかげ

+0

あなたの回答を投稿できますか? –

+0

私は質問を編集してサーバーの応答を入れました。あなたの質問がjqueryに関するものだった場合、私は単純なパーサーエラーを受け取りました。ケビンは – DVD

+0

を "jsonp text xml"を試してみましたか?私はそれがテキストとしてコンテンツを受け取り、xmlとしてjQueryによって解釈されると信じています。 –

答えて

0

です。

すでに言及したように、YQLなどの何らかのプロキシを使用する必要があります。

JSONPにデータ型を設定したときに表示される応答は、<script>タグの内部にあります。たとえば、あなたはこれを取得している:note.xmlは

<script src="http://example.com/note.xml"></script> 

です:それは有効なJavaScriptではないので、もちろん、エラーがスローされます

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

+0

私はそれを認識しています。私はそれにアクセスできないので、私は認証クッキーを送信することができないので、私はプロキシを使用することはできません。今私は好奇心、どのようにブラウザにデータをフェッチする?私はこれを要求しています。なぜなら、私は通常、私はそのデータを見ることができるURLを要求すれば、その行動をエミュレートする方法はありません? – DVD

+0

@DVD - セキュリティに問題があるため、いいえ。ブラウザは、ドメインがCORSヘッダーを返さない限り、別のドメインからのデータ受信を特に防ぎます。認証キーを使用してサーバー上のページをリクエストしてから、サーバーにクロスドメインHTTPリクエストを実行させることはできませんでしたか? –

+0

私はそれを行うことができました。私は別の方法を見つけることができないのでおそらく思いますが、そのアイデアは元のxDよりもかなりデータを読み込んで情報を表示する単純なスクリプトでした – DVD

関連する問題