2

json データを転送するために asp.net Web サービス .asmx を使用しています。動作していないように見える次のコードがあります。

    $.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;
}

}

そして、禁止エラー 403 が表示されます。よろしくお願いします。

4

2 に答える 2

0

次の URL は使用できません。

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

App_Code はクラス/モデル/その他のコード ファイルを格納する特別なフォルダーであり、フォルダー パス (App_Code) を指定せずにそのフォルダーから直接ファイルにアクセスできるためです。;)

于 2013-08-01T14:41:32.007 に答える
0

app_code フォルダー内のファイルを直接参照することはできません。asmx ファイルのパスを指定し、Web サービス名を使用する必要があります。

変化する

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

url: "../../jsonWebService.asmx/getValue",
于 2013-07-27T07:58:41.670 に答える