2011-01-12 30 views
0

如果這是基本的,請道歉。我主要是前端設計師/開發人員。用jquery解析安全條目XML文件

我有一個叫做wufoo的表單服務的webform。

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驗證feed?或者我需要通過json來做到這一點?有人可以解釋一下嗎?

+0

你的代碼沒有出現任何問題......什麼是wufoo?這似乎是問題的關鍵,而不是你的xml或jquery ......(這會使代碼無關緊要)。 – 2011-01-12 17:55:46

回答

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)的情況下向同一服務器發送請求。

最合理的解決方案是在您的Web服務器上爲您的應用程序設置代理XML文件的腳本。例如,在PHP中,它可能很簡單:

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

然後,您可以使用AJAX調用該文件並接收遠程文件的內容。

+0

感謝您的幫助! – nikibrown 2011-01-12 18:12:31