2

私のものではないサービスからいくつかの xml 情報を取得しようとしています。基本的に、ユーザーは他のサービスで認証され、スクリプトはクロスサイト経由で認証 Cookie を使用して情報を取得する必要があります。

私はそれを行うために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!'); 
            },

        });

編集:これはサーバーからの出力です

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

ありがとう

4

1 に答える 1

0

他のドメインがCORSをサポートしていない限り、クロスドメインソースからXMLをリクエストすることはできません。

すでに述べたように、YQLなどのある種のプロキシを使用する必要があります。

データ型をJSONPに設定したときに表示される応答は、<script>タグ内にあります。たとえば、次のようになります。

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

ここで、note.xmlは次のとおりです。

<?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>

もちろん、これは有効なjavascriptではないため、エラーがスローされます。

于 2012-02-17T16:43:35.747 に答える