道歉,如果这是基本的。我主要是前端设计师/开发人员。
我通过名为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>
我想知道如何使用wufoo上托管的xml文件(即https)执行此操作
所以我想我问我如何通过jquery验证feed?或者我需要通过json做到这一点?有人可以解释一下吗?
答案 0 :(得分: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调用该文件并接收远程文件的内容。
答案 1 :(得分:0)
jQuery允许将用户名和密码传递给ajax调用:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "people.xml",
dataType: "xml",
success: xmlParser,
username: "myUsername"
password: "myPassword"
});
});
但是,这会在js中以纯文本形式显示用户名和密码。您可能需要考虑设置一个小的PHP代理来进行经过身份验证的调用,以便您的所有凭据都只在服务器上。