2011-01-12 6 views
0

これが初心者の場合はお詫び申し上げます。私は主にフロントエンドデザイナー/ devです。セキュアなエントリの解析jqueryを使用したXMLファイル

私はwufooと呼ばれるフォームサービスを通じてウェブフォームを持っています。

Wufooは、魅力的なXML(またはjson)ファイルを生成します。

フォームに関連付けられているエントリxmlを取得しようとしています。入力した人物を表示するためにjqueryで解析しています。

次のコードを使用しています(ローカルxmlファイルで動作します)。

http://bostonwebsitemakeover.com/2/test.html

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
<script> 
$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "people.xml", 
     dataType: "xml", 
     success: xmlParser 
    }); 
}); 




function xmlParser(xml) { 

    $('#load').fadeOut(); 

    $(xml).find("Entry").each(function() { 

     $(".main").append('<div class="entry">' + $(this).find("Field1").text() + ' ' + $(this).find("Field2").text() + ' http://twitter.com/' + $(this).find("Field17").text() + '</div>'); 
     $(".entry").fadeIn(1000); 

    }); 



} 
</script> 

私のXMLファイルには、次のものが含まれています

<?xml version="1.0"?> 
<Entries> 
    <Entry> 
     <EntryId>1</EntryId> 
     <Field1>Meaghan</Field1> 
     <Field2>Severson</Field2> 
     <Field17/> 
    </Entry> 
    <Entry> 
     <EntryId>2</EntryId> 
     <Field1>Michael</Field1> 
     <Field2>Flint</Field2> 
     <Field17>michaelflint</Field17> 
    </Entry> 
    <Entry> 
     <EntryId>3</EntryId> 
     <Field1>Niki</Field1> 
     <Field2>Brown</Field2> 
     <Field17>nikibrown</Field17> 
    </Entry> 
    <Entry> 
     <EntryId>4</EntryId> 
     <Field1>Niki</Field1> 
     <Field2>Brown</Field2> 
     <Field17>nikibrown</Field17> 
    </Entry> 
</Entries> 

私は私が(HTTPS)でwufoo上でホストされているXMLファイルでこれを行うだろうか思ったんだけど

jquery経由でフィードを認証するにはどうすればいいですか?または、私はjson経由でこれを行う必要がありますか?誰かがどのように説明できましたか?

+0

コードに間違いはないようです... wufooとは何ですか?それはあなたのxmlやjqueryではなく、その質問が何であるかのように思われます(これは、コードが無関係に投稿されるようにします)。 –

答えて

0

jQueryのAJAX呼び出しに渡されるユーザ名とパスワードを入力することができます:

$(document).ready(function() { 
$.ajax({ 
    type: "GET", 
    url: "people.xml", 
    dataType: "xml", 
    success: xmlParser, 
    username: "myUsername" 
    password: "myPassword" 
}); 
}); 

しかしこれはあなたのjsにプレーンテキストでユーザー名とパスワードを入れます。すべての認証情報がサーバー上にのみ存在するように、認証された呼び出しを行うために少しのPHPプロキシを設定することを考えてください。

1

問題はsame-origin policyです。これは、すべてのブラウザで適用されるルールで、クロスドメインのXMLHTTPRequest(AJAXの基礎)を使用することはできません。別のサーバーまたは別のポートまたはプロトコル(http/httpsなど)を使用している場合は、同じサーバーに要求を送信しないことがあります。

最も可能性のある解決策は、アプリケーションのXMLファイルをプロキシするスクリプトをWebサーバーに設定することです。例えば、PHPでは、次のように簡単になります。

<?php 
header('Content-Type: application/xml'); 
echo file_get_contents('the wufoo url'); 
?> 

これで、AJAXでファイルを呼び出し、リモートファイルの内容を受け取ることができます。

+0

ご協力ありがとうございます! – nikibrown

関連する問題