Javascript 使用HTML表单发送跨域HTTP帖子
我有这个HTML表单,在提交之前需要进行一些处理: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
<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; }