【问题标题】:jQuery AJAX and VBscript request.formjQuery AJAX 和 VBscript request.form
【发布时间】:2010-10-06 08:47:40
【问题描述】:

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

【问题讨论】:

    标签: jquery ajax post vbscript get


    【解决方案1】:

    我发现了我的问题。

    我们使用的是 IIS7,并且在 URL 重写模块中使用了一些预定义的 URL 重写规则。

    似乎强制小写 URL 会导致这类东西出现很多问题,所以我从 IIS7 的站点中删除了小写 URL 规则,现在它可以正常工作了。

    【讨论】:

      【解决方案2】:

      这是一个使用 c# 的 jquery 和 asp.net 的简单示例(希望适用于 VB.net): 此示例将显示一条带有消息“你好,我的朋友:Dr Dre.”的警报。

      我们将向代码隐藏中的方法发送一个字符串,正如您在下面的脚本中所见,我们在选项变量中指定将在代码隐藏 (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;
      }
      

      希望这会有所帮助。

      【讨论】:

      • 感谢您抽出宝贵时间尝试帮助我,但我已经在 IIS7 的 URL 重写模块中找到了问题的答案。
      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 2011-12-14
      • 2014-04-03
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多