1

WebServiceC#で作成しました。その中に私はメソッドを持っています: 私は各ページで同じメソッドでと
を作成しましたAndroidWebservices.asmxDefault.aspx

[System.Web.Services.WebMethod]
public bool CheckLogin(string email, string password)
{
    //Get the User Information
    DB.User cur_user = DB.User.ByEmail(email.Trim());

    if (cur_user.CheckPassword(password)) {
       return true;
    } else {
       return false;
    }
}

私が入れたDefault.asxpページの場合
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server"></asp:ScriptManager>

そしてAndroidWebService.asmxについてはコメントを外しました
[System.Web.Script.Services.ScriptService]


このサービスはhttp://localhost:49524/、私の会社の.comドメインからも実行されています。

Tomcatサーバーに新しいディレクトリを作成しました。

http://  localhost:8080/

このためのコードは単純なテーブルです

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="user-scalable=no, width=device-width" />
    <link rel="stylesheet" type="text/css" href="css/iphone.css">
    <link rel="stylesheet" 
        href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
    <script src="js/iphone.js"></script>
    <title></title>
</head>
<body>
    <div id="container">
        <div id="header">
            <h1><a></a></h1>
            <div class="loginContainer">
                <table cellpadding="0" cellspacing="0" width="100%">
                    <tr>
                        <td valign="top" style="width:100px">
                            <div class="rounded-end">email</div>
                        </td>
                        <td valign="top">
                            <input type="text" id="email" class="login" />
                        </td>
                    </tr>
                    <tr>
                        <td valign="top" style="width:100px">
                            <div class="rounded-end">password</div>
                        </td>
                        <td valign="top">
                            <input type="password" id="password" 
                                class="login" />
                        </td>
                    </tr>
                </table>
                <input type="button" class="loginButton" value="login" 
                    onclick="loginCheck(); return false;"/>
            </div>      
        </div>
    </div>
</body>
</html>

そしてJavascript:

function loginCheck() {

    var u = $('#email').val();
    var p = $('#password').val();

    $.ajax({
        type: "POST",
        url: "http://localhost:49524/mobile/Android/Default.aspx/CheckLogin",
        data: JSON.stringify({email: u, password: p}),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert(msg);
        }
    });
}

私が試したこと:

dataType: "json"

何も返しません。

dataType: "jsonp"

ページを返します。

"<!doctype><html> ...... "

URLとしてを実行するDefault.aspxと、関数はページのhtml / textを返しますが、URLにコードと+クエリ文字列を入力すると、ページが返されます。ただし、データがないため、メソッドではなく、単にページを返すだけです。上記のように..私が求めているのは、次のページに進むためにユーザーのログインを確実にするためにtrueまたはfalseを返すことです。

私は人々がコメントしてくれたことに感謝します、そして私は再びそれに取り組む前にオフィスに戻らなければなりませんでした。うまくいくものができ次第、承認済みの回答にマークを付けます。

4

2 に答える 2

2

これは、メソッドを保護対象としてマークしたためだと思います。パブリックとしてマークしてから、再試行してください。

それで

protected bool CheckLogin(string email, string password)

になります

public bool CheckLogin(string email, string password)
于 2013-02-25T22:05:18.140 に答える
0

私は$.jsonp pluginその日を節約したを使用しましたそれはajax呼び出しをより簡単にしました..
私はまたこれを私のwebconfigに入れなければなりませんでした:

<webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>
于 2013-02-26T16:06:43.567 に答える