使用jQuery ajax()函数将值从一个页面发送到另一个页面时遇到了一些麻烦。
由于某种原因,我的VBscript页面上的request.form将不会使用jQuery中的ajax()函数获取我发送的数据。
这是我的javascript函数,在我的表单中的onsubmit事件中调用:
function sendData() {
$.ajax({
type: "POST",
url: "/useData.asp",
data: {
newData: $("form[name=myData] [name=newData]").val()
},
success: function(response) {
$("#responseData").html(response);
},
error: function(xhr) {
alert("Error: " + xhr.status);
}
});
return false;
}
这是我的VBscript:
<%=request.form("newData")%>
出于某些原因,当我使用POST时,我没有在responseData div中返回任何数据。 但是,如果我将POST更改为GET并将request.form更改为request.queryString,我会得到我应该做的数据。
有人可以告诉我为什么POST和request.form不起作用吗?
答案 0 :(得分:1)
我发现了我的问题。
我们正在使用IIS7并在URL重写模块中使用了一些预定义的URL重写规则。
似乎强制使用小写URL会导致很多问题,所以我在IIS7中删除了网站中的lowecase URL规则,现在工作正常。
答案 1 :(得分:1)
这是一个使用c#的jquery和asp.net的简单示例(希望能为VB.net工作): 此示例将显示一条警告,其中包含消息“你好我的朋友:Dre博士。”
我们将向代码隐藏中的方法发送一个字符串,如下面的脚本中所示,我们在options varible中指定将在codebehind(url)中接收数据的方法的名称,以及要处理的参数的名称(数据)
$(document).ready(function() {
var myname="Dr Dre."
var options =
{
type: "POST",
url: "yourpage.aspx/SayHelloTo",
data: '{"name":"' + myname + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
if (response.d != "") {
alert(response.d);
}
}
};
$.ajax(options);
});
该方法应该由[WebMethod]和静态属性
修饰[WebMethod]
public static string SayHelloTo(string name)
{
return "hello my friend: "+name;
}
希望这会有所帮助。