我有2个文件,一个SendEmail.asp和一个Home.htm文件。
在Home.htm中,我将VB脚本中的一些值传递给SendEmail:
document.formname.action = "SendEmail.asp?homepage =" + window.location.href;
现在,当电子邮件成功完成后,我想将参数发送到htm文件并显示成功消息。
现在我以这种方式重定向到home.htm:
response.redirect(request.QueryString("homepage"))
如果我添加任何查询字符串,如home.htm?n1=success
,那么我收到错误。请提供宝贵的建议和答案。
代码在home.htm文件中:
<script language="javascript" type="text/javascript">
function fnSubmit()
{
var retValue=true;
if(retValue)
{
if(document.formname.txtName.value=='')
{
alert("Please enter Name");
document.formname.txtName.focus();
retValue=false;
}
}
if(retValue)
{
if(checkEmail(document.formname.txtEmail, "Email", false)==false)
{
alert("Please enter Email");
document.formname.txtEmail.focus();
retValue=false;
}
}
if(retValue)
{
if(document.formname.txtPhone.value=='')
{
alert("Please enter Phone No.");
document.formname.txtPhone.focus();
retValue=false;
}
}
if(retValue)
{
if(document.formname.txtQuery.value=='')
{
alert("Please enter Your Query");
document.formname.txtQuery.focus();
retValue=false;
}
}
if(retValue)
{
document.formname.action = "SendEmail.asp?homepage =" + window.location.href;
document.formname.submit();
}
return false;
</script>
按钮上的单击:
onclick="javascript:fnSubmit();"
在SendEmail.asp文件中:
<%@ language="VBScript" %>
<%Option Explicit%>
<%
Dim Uploader, File, FileSys, FilePath, UploadFileName, strHTML, subject, Mailer, EmailAddress
subject = request("txtSubject")
EmailAddress = request("txtEmail")
strHTML = " Name : "&request("txtName")&" Email : "&request("txtEmail")&" Query : "&request("txtQuery")
Set Mailer=CreateObject("CDO.Message")
Mailer.Subject="accurate-data-entry.com:: new"&subject
Mailer.From= request("txtEmail")
Mailer.To="abc@gmail.com "
Mailer.HTMLBody=strHTML
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") ="abc@gmail.com"
Mailer.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="xyz"
Mailer.Configuration.Fields.Update
Mailer.send
Set Mailer = nothing
'Response.write("Done Successful")
response.redirect(request.QueryString("homepage "))
%>
如果我正在添加Response.Write,我收到错误消息:
CDO.Message.1错误'80040213'
传输无法连接到服务器。
/SendEmail.asp,第41行
第41行是Mailer.send
谢谢
答案 0 :(得分:0)
您需要使用jquery使用AJAx提交表单。 Jquery将获取所有表单变量并将其提交到您的asp页面以发送电子邮件。在asp页面中,摆脱response.redirect。重定向不是必需的,将打破ajax响应。而不是在asp页面做一个response.write“感谢你的消息”或类似的东西。
看一下Jquery Ajax文档。
$.ajax({
type: "POST",
url: "SendEmail.asp",
dataType: 'text',
data: { username: username, password: password },
success: function(data) {
if(data == 'Incorrect password'){
$('#results_callback').html(data);
}
else{
$('#results').html(data);
}
},
error: function(msg) {
alert("O NOES");
}
});