我正在寻找一种方法来了解如何将GET表单结果页面定位到div。 到目前为止,大多数解决方案都告诉我使用Iframe,但我的目的是对结果页面进行一些更改,并使用Iframe似乎激活跨域脚本编写规则,阻止我获取页面内容。
结果页面通常是原始XML。
<html>
<head>
<link rel="stylesheet" href="css/smoothness/jquery-ui-1.9.2.custom.css" >
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jquery-ui-1.9.2.custom.js"></script>
<script src="js/jquery.xslt.js"></script>
<script type="text/javascript">
$(function() {
var xmlContent = $("#CFrame").contents().find("*").text();
$('#SResult').xslt({xml:xmlContent, xslUrl:'stylesheet/styleSheet.xsl'});
});
// prepare the form when the DOM is ready
function submitForm() {
// bind form using ajaxForm
$('#searchForm').ajaxForm({
// dataType identifies the expected content type of the server response
dataType: 'xml',
// success identifies the function to invoke when the server response
// has been received
success: processXml
});
return false;
}
function processXml(responseXML) {
// 'responseXML' is the XML document returned by the server; we use
// jQuery to extract the content of the message node from the XML doc
var message = $(responseXML).text();
$("#SResult").text(message);
}
</head>
<body>
<form id="searchForm" method="GET" action="http://111.11.111.11:1111/search" onSubmit="submitForm()">
<!--.... Some input go here-->
<input type="submit" value="Search" />
<div id="SResult">
</div>
<iframe id="CFrame" name="ContentFrame" frameborder="1" height="1000px" width="1000px" scrolling="no"></iframe>
</body>
<script>
loadUI();
</script>
</html>
谢谢,
答案 0 :(得分:0)
您是否使用get方法提交表单,然后响应将显示在div标签上?
你可以使用Jquery ajax。
实施例
$.ajax({
type: "POST",
url: "url here",
data: {id: someIdTobePass},
success: function(response){
//do the jquery manipulation
$("#myDivID").html("the response is " + response);
}
});
答案 1 :(得分:0)
您可以在jQuery中使用 $。get 辅助方法。
jQuery API
jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [, dataType]);
代码示例
$.get("test.php", { name: "John", time: "2pm" },function(data){
$("#mydiv").html(data);
});
答案 2 :(得分:0)
除非您使用jsonp,服务器代理或您可以控制其他域,否则您无法向其他域发出get或post请求。如果您可以控制正在进行ajax调用的域,则可以向您尝试请求的页面添加Access-Control-Allow-Origin
响应标头,这样就可以访问您的域。
由于您正在执行返回XML的GET请求,因此我建议使用使用YQL作为代理的this jQuery plugin。此外,您可以使用this guide查看其工作原理或在没有插件的情况下执行此操作。
解决此问题的已解决的stackoverflow问题:Cross-Domain Requests with jQuery