Forms Safari 3.2.1发送POST,然后发送GET请求

Forms Safari 3.2.1发送POST,然后发送GET请求,forms,post,safari,get,tomcat5.5,Forms,Post,Safari,Get,Tomcat5.5,我有一个在Tomcat5.5.27和5.5.26上运行的servlet,有一个带有POST方法的web表单。 如果我使用Safari 3.2.1,我会从日志中看到Tomcat收到一个POST,紧接着/同时收到GET,但失败了。 如果我使用Firefox3.0.5,我会发现它只发送POST,一切正常 尝试使用Eclipse进行调试时,我发现在使用Safari时调用的是doGet()方法,而在使用Firefox时调用的是doPost() 实际上,Safari似乎同时启动POST,然后立即启动GET,

我有一个在Tomcat5.5.27和5.5.26上运行的servlet,有一个带有POST方法的web表单。 如果我使用Safari 3.2.1,我会从日志中看到Tomcat收到一个POST,紧接着/同时收到GET,但失败了。 如果我使用Firefox3.0.5,我会发现它只发送POST,一切正常

尝试使用Eclipse进行调试时,我发现在使用Safari时调用的是doGet()方法,而在使用Firefox时调用的是doPost()

实际上,Safari似乎同时启动POST,然后立即启动GET,而Firefox只启动POST(根据HTML表单,它应该这样做)

有没有其他人有过这样的经历?在这种情况下,有解决方案吗

以下是HTML表单的一个片段:

<form action="/vidisearch/Search" method="post" name="SearchForm" id="SearchForm">
    <div class="input required">
    <label for="Concepts">Concepts, comma separated<br />
    ex. (remove quotes) &quot;man-made object, cemetery, graphic event, atmospheric event, tool event&quot;</label>
    <input name="concepts" type="text" value="" id="concepts" />
    </div>

    <div class="input required">
    <label for="Operators">Operators, comma separated<br />
    ex. (remove quotes) &quot;NOT, AND, OR, AND, AND&quot;</label>
    <input type="text" name="operators" value="" id="operators" />
    </div>

    <div class="input required">
    <label for="Specializations">Specializations, comma separated<br />
    ex. (remove quotes) &quot;true, false, false, true, false&quot;</label>
    <input type="text" name="specializations" value="" id="specializations" />
    </div>

    <div class="input required">
    <label for="Results">Various parameters</label>
    <table width="100%" border="0" style="border: 0;">
    <tr>
    <td>Ontology ID<br />
    <input name="ontologyID" type="text" id="ontologyID" value="" /></td>
    <td>Result page<br />
    <input name="page" type="text" id="page" value="0" /></td>
    <td>Shots per page<br />
    <input name="shotsPerPage" type="text" id="shotsPerPage" value="20" /></td>
    <td>New search<br />
    <input name="newSearch" type="text" id="newSearch" value="true" /></td></tr>
    </table>
    </div>

    <div class="submit"><input type="submit" value="Search" /></div>
</form>

概念,逗号分隔
例如(删除引号)“人造物体、墓地、图形事件、大气事件、工具事件” 运算符,逗号分隔
例如(删除引号)“不,和,或,和” 专门化,逗号分隔
例如(删除引号)“真、假、假、真、假” 各种参数 本体ID
结果页
每页快照数
新搜索

很难说没有看到表单的HTML,但可能您的提交按钮是一个带链接的包装,Safari发布表单并跟踪链接(通过GET)。

很难说没有看到表单的HTML,但可能您的提交按钮是一个带链接的包装,Safari正在发布表单并通过GET链接。

我不确定发生了什么,但我知道您需要提供更多信息


可能是它发送了一个获取相关资源(如图像)的GET,而Firefox将它们保存在缓存中,或者你在一个or中有表单提交按钮,然后查看Safari试图获取什么以及发布了什么

我不确定发生了什么,但我知道的是,你需要提供更多信息


也许它发送了一个获取相关资源(如图像)的GET,而Firefox将它们保存在缓存中,或者你在一个or中有表单提交按钮)并查看Safari试图获取的内容和发布的内容

我对Safari的行为感到困惑,因为我之前提醒过,Safari是有效的。我担心最新的一次升级会破坏某些东西

使用我已经看到,显然Safari会在收到响应时触发POST,然后触发GET。然而,我认为它实际上同时触发了两个请求,因为POST和GET的两个响应的日期+时间是相同的

该响应是一个RSS提要,具有HTTP/1.1 200 OK代码。第二个GET请求与POST相同的请求URL(),但是主体是0字节,它当然没有GET参数,并且由于缺少参数,所以答案是错误的


相反,Firefox只发送帖子并得到正确答案。

我对Safari的行为感到非常困惑,因为我提醒过Safari在不久前起了作用。我担心最新的一次升级会破坏某些东西

使用我已经看到,显然Safari会在收到响应时触发POST,然后触发GET。然而,我认为它实际上同时触发了两个请求,因为POST和GET的两个响应的日期+时间是相同的

该响应是一个RSS提要,具有HTTP/1.1 200 OK代码。第二个GET请求与POST相同的请求URL(),但是主体是0字节,它当然没有GET参数,并且由于缺少参数,所以答案是错误的


相反,Firefox只触发帖子并得到正确答案。

我认为您有一个带有空src的图像标记。

我认为您有一个带有空src的图像标记。

我添加了表单的HTML代码片段。如您所见,提交按钮没有任何链接。我已经添加了表单的HTML代码片段。如您所见,提交按钮没有链接。我将尝试Wireshark。无论如何,GET是由Tomcat记录的,所以我认为它正在获取servlet。不管怎样,我还是要检查一下。我没有使用任何Javascript,按钮也不在链接中。我会试试Wireshark。无论如何,GET是由Tomcat记录的,所以我认为它正在获取servlet。无论如何,我还是要检查一下。我没有使用任何Javascript,按钮也不在链接中。