Json对象在asp.net中使用webservice(.asmx)返回不起作用

时间:2013-07-27 07:56:12

标签: asp.net ajax json web-services asmx

我正在使用asp.net web服务.asmx来传输json数据。我有以下代码似乎没有工作。

    $.ajax({
            type: "POST",
            url: "../../App_Code/jsonWebService/getValue",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (output) {
                alert(output);
                $(config.captchaQuestion).html(output[0] + " + " + output[1] + " =");
                $(config.captchaHidden).val(output[2]);
            }
        });

我在asmx文件的jsonWebService.cs中的代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;

/// <summary>
/// Summary description for jsonWebService
// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment        the following line. 
 [System.Web.Script.Services.ScriptService]
public class jsonWebService : System.Web.Services.WebService {


[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Array getValue()
{
    Random getRandom = new Random();
    int rand1 = getRandom.Next(0, 9);
    int rand2 = getRandom.Next(0, 9);
    int sum = rand1 + rand2;
    int[] jsonObject = new int[3] { rand1, rand2, sum };
    return jsonObject;
}

}

我正在收到Forbidden错误403.提前致谢。

2 个答案:

答案 0 :(得分:0)

您不能直接浏览app_code文件夹中的文件。您必须提供asmx文件的路径并使用Web服务名称。

更改

url: "../../App_Code/jsonWebService/getValue",

url: "../../jsonWebService.asmx/getValue",

答案 1 :(得分:0)

网址不能是:

"../../App_Code/jsonWebService/getValue",

因为App_Code是一个存储类/模型/任何其他代码文件的特殊文件夹,我们可以直接访问该文件夹中的文件而无需指定文件夹路径(App_Code)..;)