2010-10-06 68 views
2

我在使用jQuery ajax()函數將值從一個頁面發送到另一個頁面時遇到了一些麻煩。jQuery AJAX和VBscript request.form

出於某種原因,我的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我不」 t得到在responseData div中返回的任何數據。 但是,如果我更改發送到GET和request.form request.queryString我得到我的數據,因爲我應該這樣做。

有人可以告訴我爲什麼POST和request.form不工作?

回答

1

我發現我的問題。

我們使用的是IIS7,並使用了URL重寫模塊中的一些預定義的URL重寫規則。

看來強制使用小寫字母的URL會導致很多問題,所以我從IIS7中的網站中刪除了lowecase URLs規則,現在它工作的很好。

1

這裏是一個簡單的jquery和asp.net使用c#的例子(希望VB.net能工作): 這個例子將顯示一條警告消息「hello my friend:Dr Dr」。

我們將向代碼隱藏方法發送一個字符串,如您在下面的腳本中看到的,我們在選項中指定將在代碼隱藏(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; 
} 

希望會有所幫助。

+0

感謝您花時間嘗試和幫助我,但我找到了我的問題的答案,這是IIS7的URL重寫模塊中的問題。 – 2010-10-06 10:52:54