以下のスクリプトは、Web APIからjsonデータにアクセスするために使用されます。私はURL "http://localhost:55506/api/Login/submit?username=" + uname + "&パスワード=" + login.password + ""でデータにアクセスしようとしていましたが、変数unameでエラーを返します。 (未定義のuname)jsonデータURLにアクセスするためのJavaScript暗号化
しかし、私は、実際のユーザ名&パスワード(http://localhost:55506/api/Login/submit?username=raja&password=abc123)と同じデータにアクセスしようとしたとき。正しいデータを含むテーブルを返します。
ビューのページにユーザーの詳細を表示します。だから私は私のビューページで以下のスクリプトを使用しました
おかげさまで助けを受けてください。
ビューページ
<script>
$(function() {
var entries = [];
var dmJSON = "http://localhost:55506/api/Login/submit?username=" + uname + "&password=" + login.password + "";
$.getJSON(dmJSON, function (data) {
$.each(data, function (i, f) {
var tblRow = "<tr>" + "<td>" + f.UserID + "</td>" + "<td>" + f.FirstName + "</td>" + "<td>" + f.LastName + "</td>" + "</tr>"
$(tblRow).appendTo("#entrydata tbody");
});
});
});
</script>
マイコントローラー
public ActionResult Index(Login login)
{
if (ModelState.IsValid) // Check the model state for any validation errors
{
string uname = "";
uname = login.username;
string pword = "";
pword = login.password;
string url = "http://localhost:55506/api/Login/submit?username=" + uname + "&password=" + pword + "";
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage responseMessage = client.GetAsync(url).Result;
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
JsonConvert.DeserializeObject<List<LoginResult>>(responseData);
if (responseData.Contains("True"))
{
return View("Show", login); // Return the "Show.cshtml" view if user is valid
}
else
{
ViewBag.Message = "Invalid Username or Password";
return View(); //return the same view with message "Invalid Username or Password"
}
}
else
{
return View();
}
return View();
}
マイモデル
public class Login
{
[Required(ErrorMessage = "Username is required")] // make the field required
[Display(Name = "username")] // Set the display name of the field
public string username { get; set; }
[Required(ErrorMessage = "Password is required")]
[Display(Name = "password")]
public string password { get; set; }}
console.log(dmJSON)を使用するとエラーが発生します。エラーは未定義です:unameです。これは、unameを ...と親切に比較します。私はこの問題を解決するために提案します。事前に感謝します –
あなたの変数がフォームに渡されていないようです。私はあなたのコードの詳細(具体的にどのように関数を呼び出すのか、どこから変数が来るのか)を見なければならないでしょう。 URLとjQueryが正しく動作しているかどうかをテストして確認するには、スクリプト内の変数に手動で名前を付けます。 var uname = "raj"; var loginpassword = "abc123"; 変数を設定するには、期間を削除する必要があります。同じことをdmJSON文字列で行う必要があります。次に、関数をテストします。それがうまくいくなら、あなたの関数がうまくいて、問題が値を渡していることが分かります。 – jcalton88
こんにちは@ jcalton88。変数を手動で定義してアクセスしようとしましたが、うまくいきます。上記のコードは私の完全なコードです。変数** uname **がコントローラ内で宣言されています。しかし、それは私の渡す変数にまだエラーを示しています。親切にお勧めします。 –