【发布时间】:2011-05-13 20:54:59
【问题描述】:
这是代码:
表单的HTML:
<div id="contact_form">
<h1>Contact us</h1>
<p>Please use the form below to send us a message.</p>
<form method="post" onsubmit="return sendContact();" action="sendContact.asp">
<p><label for="name" id="lname">Full name:</label>
<input type="text" class="text" name="name" id="name" onfocus="input_focus('name');" onblur="input_blur('name');" /></p>
<p><label for="email" id="lemail">Email address:</label>
<input type="text" class="text" name="email" id="email" onfocus="input_focus('email');" onblur="input_blur('email');" /></p>
<div class="x"></div>
<p class="error" id="email-error">You must enter your email address.</p>
<p><label for="category" id="lcategory">Category:</label>
<select name="category" id="category" onfocus="input_focus('category');" onblur="input_blur('category');">
<option value="software">Software</option>
<option value="hardwae">Hardware</option>
<option value="consulting">Consulting</option>
<option value="resources">Resources</option>
</select></p>
<p><label for="message" id="lmessage">Message:</label>
<textarea name="message" id="message" onfocus="input_focus('message');" onblur="input_blur('message');"></textarea></p>
<div class="x"></div>
<p class="error" id="message-error">You must enter your message.</p>
<p><label for="captcha" id="lcaptcha"></label>
<input type="text" class="text" name="captcha" id="captcha" onfocus="input_focus('captcha');" onblur="input_blur('captcha');" /></p>
<div class="x"></div>
<p class="error" id="captcha-error">Are you shure about your calculations?</p>
<script type="text/javascript">
generate_captcha('lcaptcha');
</script>
<div class="x"></div>
<input type="submit" class="submit" name="send_contact" value="Send" />
</form>
<span id="contact-back">or you can <a href="index.html" class="read-more">Go back</a</span>
</div>
<div id="message_sent" style="display:none;">
<h1>Your message has been sent</h1>
<p>We'll contact you in a shortest possible time.</p>
<p>You can now <a href="index.html" class="read-more">go back</a> to home page.</p>
</div>
</div>
这是发布帖子的 js(sendContact() 函数的一部分):
var data = $("#contact_form > form").serialize();
$.ajax({
type: "POST",
url: "sendContact.asp",
global: false,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
data: data,
dataType: "text",
async: false,
cache: false,
error:function () {
alert('AJAX Connectivity Error');},
success: function(msg){
}
});
$("#contact_form").fadeOut(1000, function() {
$("#message_sent").slideDown(500);
});
return false;
}
这是应该捕获查询字符串“sendContact.asp”的代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.Buffer = False
Response.CacheControl = "无缓存"
常量 ForReading = 1,ForWriting = 2,ForAppending = 8
设置 Fso = server.CreateObject("Scripting.FileSystemObject")
设置 SendContact = Fso.OpenTextFile(Server.MapPath("\contact.txt"), ForAppending, True, -1)
SendContact.WriteLine "咨询:"&Request("category")&",时间戳:"&Now()&""
SendContact.WriteLine "IP:"&Request.ServerVariables("REMOTE_ADDR")&""
SendContact.WriteLine "名称:"&Request("name")&""
SendContact.WriteLine "电子邮件:"&Request("email")&""
SendContact.WriteLine "Mensaje: "&Request("message")&""
SendContact.WriteBlankLines 2
SendContact.Close
%>
当信息与表单一起发送时,一切看起来都是正确的,但是任何数据都被发送到“senContact.asp”,并且除了时间戳和远程 IP 之外,“contact.txt”的字段中写入了一个空格。我也尝试过请求“Request.Querystring(“id”)”,但结果是一样的。
感谢您的游览帮助
【问题讨论】:
-
嗯,这需要基本的调试。以
data开头 - 它包含任何内容吗?试试console.log(data)找出答案 -
数据发送正确,我认为问题可能出在 ASP 页面中。
-
我复制了您的代码,它工作得很好.. 有两件事浮现在脑海中。 a)可能是一个页面经过身份验证而另一个页面没有? b)您是否使用任何读取提交的二进制数据的组件?因为我记得其中大多数都以某种方式混淆了发布的数据,并且通常会创建一个包装器对象来提供该信息。
标签: jquery post asp-classic