2011-03-28 38 views
5

我已经写了下面的JavaScript代码:如何阅读张贴到传统的ASP与jQuery的AJAX数据

function sendCcbRequest(text) { 
    var jsonToSend = "\"text\": \"" + escape(text) + "\""; 
    $.ajax({ 
     type: "POST", 
     url: 'x.asp', 
     data: jsonToSend, 
     success: function(response) { 
      alert("success:" + response); 
     }, 
     error: function() { 
      alert("error"); 
     } 
    }); // end ajax 
} 

如何阅读,我从我的经典ASP代码发布的数据?

更新 我试过以下为我的经典asp文件x.asp。

<% 
Dim x 
x = Request.Form("text") 
Response.Write(x) 
%> 

它仍然没有打印任何东西。

回答

4

数据使用此方法(如张贴在问题)发布的方式上并没有真正建立表单对象服务器端。因此,发布的数据将使用Request.BinaryRead进行读取,然后使用here中的一种方法将其转换为字符串。正如您已经注意到的,如果您使用查询字符串表单key1 = value1 & key2 = value2或形式为{key1:'value1',key2:'value2'}的地图发送数据,则发布的数据是有效的表单并且ASP会将其转换为可以很容易读取的Request.Form。

0

我会使用这里描述的解析器:Any good libraries for parsing JSON in Classic ASP?。这对我很有用。

+0

也许对于一个更复杂的任务,这将是适当的。在这里,我只是想读一个文本值。我可以调用它来读取它的'Request'对象上没有方法吗? – 2011-03-28 17:00:32

+0

在这种情况下,我会将它视为任何名称:值对传递请求.. <%= Request.Form(“name”)%> – roberttdev 2011-03-28 17:02:16

0

x.asp页面,只需使用:Request.Form("text")即可读取发布Ajax请求的文本。

+0

我已经试过这个,我得到一个空值字符串的值'Request.Form(“text”)''。错误可能在客户端jQuery代码中吗? – 2011-03-28 17:07:04

+0

您是否有权使用调试工具?你使用FireBug吗?如果是这样,请查看您要发送到服务器的HTTP数据包,以查看请求是否正常。您可以使用FireBug或WireShark或Fiddler来跟踪HTTP请求/响应。 POST请求应该如下所示:'text = somevalue' – 2011-03-28 17:14:25

3

好吧,我发现了一些可行的方法。下面的代码行:

var jsonToSend = "\"text\": \"" + escape(text) + "\""; 

需要被改变到

var jsonToSend = { text: escape(text) };