jQuery AJAX和VBscript request.form

时间:2010-10-06 08:47:40

标签: jquery ajax post vbscript get

使用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不起作用吗?

2 个答案:

答案 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;
}
希望这会有所帮助。