2012-09-08 196 views
0

我尝试在我的aspx页面中使用ajax调用。这里是我的脚本:Ajax调用不起作用

<head runat="server"> 
<title></title> 
<script type="text/javascript" src="jquery/ui/jquery-ui-1.8.23.custom.js"></script> 

<script type="text/javascript" language="javascript"> 

    $(document).ready(function() { 
     $.ajax({ 
      type: "POST", 
      url: "WebForm1.aspx/List", 
      data: '{}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function() { 
       alert('asd'); 
      } 
     }); 

    }); 

</script> 
</head> 

这里是我的服务器端代码:

[WebMethod] 
public static string[] List() 
{ 
     ... 
} 

我把一个破发点列表的第一行,但没有发生。你有什么建议,我犯了什么错误?

+0

为什么使用'POST'而不是'GET'?开发人员工具告诉你什么?你看过请求标题吗?响应标题? – Oded

+0

相同的结果.. – cagin

+0

@Oded - 大概是因为POST动词更适合相关任务。问题中没有任何内容表明任务是什么,所以没有理由认为POST不合适。 – Quentin

回答

0

你指定的参数是json;但json数据在哪里? data: '{}',是一个对象。另外,我会检查url参数。据推测,你需要写你的电话是这样的:

var AjaxData = '{"ParameterName":""}'; 

$.ajax({ 
      type: "POST", 
      url: "../WebForm1.aspx/GetList", 
      data: AjaxData , 
      contentType: "application/json; charset=utf-8", 
      dataType: "json",.... 

,然后在服务器端,因此应该指定您收到一个字符串,因为这是JSON数据的格式。我还建议更改WebMethod的名称,因为List可能会引起混淆。最后,你要返回json,因此你要返回一个字符串而不是数组。像这样的服务器方法:

​​
+0

我试过但结果相同。 – cagin

+0

我刚刚做了一个编辑,我认为你的URL也可能是一个问题。你不发送参数;编辑也是这样:) – frenchie

+0

aspx和aspx.cs文件在同一个根目录下,我给我的问题添加了一条评论,我想问题在于document.ready函数 – cagin