Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用HTML表单发送跨域HTTP帖子_Javascript_Jquery_Ajax_Http_Cross Domain - Fatal编程技术网

Javascript 使用HTML表单发送跨域HTTP帖子

Javascript 使用HTML表单发送跨域HTTP帖子,javascript,jquery,ajax,http,cross-domain,Javascript,Jquery,Ajax,Http,Cross Domain,我有这个HTML表单,在提交之前需要进行一些处理: <form action="http://appid.appspot.com/api/foo" id="contact-form" method="post" name="contact-form"> <fieldset> <label><input name="email" onblur= "if(this.value=='') this.value='Emai

我有这个HTML表单,在提交之前需要进行一些处理:

<form action="http://appid.appspot.com/api/foo" id="contact-form" method="post"
name="contact-form">
    <fieldset>
        <label><input name="email" onblur=
        "if(this.value=='') this.value='Email'" onfocus=
        "if(this.value =='Email' ) this.value=''" value="Email"></label>
        <label><input name="subject" onblur=
        "if(this.value=='') this.value='Subject'" onfocus=
        "if(this.value =='Subject' ) this.value=''" value="Subject"></label> 
        <textarea name="message" onblur=
        "if(this.value=='') this.value='Message'" onfocus=
        "if(this.value =='Message' ) this.value=''">
Message
</textarea>

        <div class="buttons">
            <a href="#" onclick=
            "document.getElementById('contact-form').reset()">Clear</a>
            <a href="#" onclick=
            "document.getElementById('contact-form').submit()">Send</a>
        </div>
    </fieldset>
</form>

消息
基本上,我需要做的是:

  • 单击“提交”按钮时,将出现一个弹出窗口,指示消息已提交(通过检查服务器响应)


  • 我需要复制特定表单输入的值,比如输入元素的值。然后,比如说,将电子邮件前置到实际邮件中,这样“邮件”的形式将是例如
    “电子邮件:x@dot.com消息:Hello world“
    您想使用表单的
    提交

    为了清晰起见,我对您的html(尤其是内联javascript)做了一些更改:

    如果另一个域使用会话cookie和/或检查文档引用者,跨域执行此操作可能会变得棘手


    更新:我看到您更新了您的问题,现在想检查并显示您的邮件中的服务器响应到?

    您想使用表单的
    提交

    为了清晰起见,我对您的html(尤其是内联javascript)做了一些更改:

    如果另一个域使用会话cookie和/或检查文档引用者,跨域执行此操作可能会变得棘手


    更新:我看到你更新了你的问题,现在想检查并显示你的邮件中的服务器响应到?

    ,你到底在哪里收到跨域错误?@AkshaySinghal实际上没有跨域错误,此表单实际上可以发送到其他域。但是,我不确定这是否适用于所有浏览器。很抱歉,我不明白你的问题是什么。@AkshaySinghal我的意思是,我想将此代码迁移到Ajax代码中,你到底在哪里遇到跨域错误?@AkshaySinghal实际上没有跨域错误,此表单实际上可以发送到其他域。但是,我不确定这是否适用于所有浏览器。很抱歉,我不明白你的问题是什么。@AkshaySinghal我的意思是,我想将这段代码迁移到Ajax代码中。当我尝试快速发送表单时,甚至消息框都不显示——当我尝试执行按钮提交时……你是什么意思?我为
    (而不是你现在的
    ,事实上,如果HTML表单上传更好,那么我会更好地使用ajax,我很困,所以我无法理解我需要实现什么…好事情是它现在可以工作了,现在我可以睡觉了…当我尝试快速发送表单时,甚至消息框都不会显示--当我尝试执行按钮提交时…你是什么意思?我为
    准备了表单(而不是您当前的
    ,事实上,如果HTML表单上传更好,那么我最好使用ajax,我很困,所以我无法理解我需要实现什么…好事情它现在起作用了,现在我可以睡觉了。。。
    
    <form action="http://appid.appspot.com/api/foo" id="contact-form" method="post"
    name="contact-form" onsubmit="return doStuff() ? true:false;">
        <fieldset>
            <input name="email" value="Email"
                 onblur="if(this.value===''){this.value=this.defaultValue}" 
                onfocus="if(this.value===this.defaultValue){this.value=''}" > <br>
            <input name="subject" value="Subject"
                 onblur="if(this.value===''){this.value=this.defaultValue}" 
                onfocus="if(this.value===this.defaultValue){this.value=''}" > <br>
            <textarea name="message" 
                    onblur="if(this.value===''){this.value=this.defaultValue}" 
                   onfocus="if(this.value===this.defaultValue){this.value=''}"
                          >Message</textarea>
            <div class="buttons">
                <a href="#" onclick=
                "document.getElementById('contact-form').reset()">Clear</a>
                <a href="#" onclick=
                "if(doStuff()){document.getElementById('contact-form').submit();}">Send</a>
            </div>
        </fieldset>
    </form>
    
    function doStuff(){
        var eml=document.getElementsByName('email')[0].value;
            msg=document.getElementsByName('message')[0];
        msg.value = 'Email: ' + eml + ' Message: ' + msg.value;
        alert ('message has been submitted');
        return true;
    }