获取表单结果页

Get Form result page

本文关键字:结果 表单 获取      更新时间:2023-09-26

我正在寻找一种方法,以某种方式将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> 

谢谢,

除非您使用jsonp,服务器代理,或者您可以控制其他域,否则您无法向另一个域发出get或post请求。如果您可以控制您正在进行ajax调用的域,您可以向您正在尝试请求的页面添加Access-Control-Allow-Origin响应头,这将允许您的域访问。

既然你正在做一个返回XML的GET请求,我建议使用这个jQuery插件,它使用YQL作为代理。此外,你可以使用这个指南来了解它是如何工作的,或者在没有插件的情况下使用它。

一个解决的stackoverflow问题,解决了同样的问题:jQuery跨域请求

您是否使用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);
   }
});

您可以使用$。jQuery中get helper方法

jQuery API

jQuery。get(url [, data] [, success(data, textStatus, jqXHR)] [,

代码示例

$.get("test.php", { name: "John", time: "2pm" },function(data){
   $("#mydiv").html(data);
});