【问题标题】:Using HTML post without affecting the current page在不影响当前页面的情况下使用 HTML post
【发布时间】:2011-08-18 07:53:55
【问题描述】:

我正在使用以下表格从我们的 Esendex 帐户发送短信:

        <form method="post" action="https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx">

        <P>Username:<br>
            <INPUT name="EsendexUsername" type="text"></P>
        <P>Password:<br>
            <INPUT name="EsendexPassword" type="password"></P>
        <P>Account:<br>
            <INPUT name="EsendexAccount" type="text"></P>
        <P>Recipient:<br>

            <INPUT name="EsendexRecipient" type="text"></P>
        <P>Message:<br>
            <TEXTAREA name="EsendexBody" rows="3" cols="20"></TEXTAREA></P>
        <input type="submit" value="Send">
    </form>

这工作正常,但是当我提交表单时,它会自动转到 Esendex 页面。我需要的是能够将信息发布到 Esendex 页面,但保持当前页面不变,因为它有像秒表等需要继续运行的信息。

有什么简单的方法可以做到这一点吗?我不需要 Esendex 网站的任何回复,只需将信息发送给它即可。

感谢您的帮助

【问题讨论】:

    标签: php html forms post submit


    【解决方案1】:

    您可以通过&lt;iframe&gt; 发布。

    <form action="something" target="iframe_id">
    
    </form>
    <iframe id="iframe_id" name="iframe_name" style="display:none;"></iframe>
    

    请注意。这可能无法通过某些企业安全测试。

    您的另一种选择是使用 jQuery 的 AJAX

    【讨论】:

    • 请注意,由于浏览器的同源策略,AJAX 在跨域请求时会失败。此外,如果
    【解决方案2】:

    我认为你有点卡住了,至少在客户端 - JavaScript 允许你发出 HTTP POST 请求,但只能发送到你的网页所在的同一个域,这排除了向 Esendex 发送数据的可能性。

    您可以将表单提交到服务器上的脚本,然后让服务器将 HTTP POST 发送到 Esendex。

    【讨论】:

    • 如果你正在做跨域请求,我认为这个问题可能就是这种情况。
    • @Rafael:你说得完全正确,我真的应该在回答 Stack Overflow 问题之前尝试醒来。答案已更正。
    • 您好,保罗感谢您的回复。您的意思是我需要通过 AJAX 执行此操作并将详细信息提交到我域上的另一个页面,该页面与 Esendex 一起完成所有工作?抱歉,我在这种事情上有点没用
    • @Daniel:不客气,不用担心,这里发生了一些事情。您没有必须使用 AJAX 将表单提交到您的域 - 您可以将表单提交到它所在的页面,然后让页面返回自身并添加一点确认消息。如果您打算避免页面刷新,那么是的,您需要通过 AJAX 提交。除了直接在那里提交表单之外,要与 Esendex 通信,是的,您的服务器必须这样做。
    • 谢谢保罗,我会试一试:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2012-08-12
    • 2018-12-24
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多