gpt4 book ai didi

asp.net - jQuery黑莓ajax问题

转载 作者:行者123 更新时间:2023-12-03 22:52:46 26 4
gpt4 key购买 nike

我有一个可供移动设备使用的 asp.net Web 应用程序。我使用 jQuery 和 jqMobile 来实现功能和样式。

该应用程序在 safari、google chrome、iPhone、iPad 和 Android 设备上运行良好,但除了 Blackberry torch 之外,我无法让它在任何其他设备上运行。我需要让它在版本 5 和 6 黑莓设备上工作,但似乎登录的 ajax 请求总是调用错误函数,我不明白为什么。

enter image description here

该应用程序包含几个页面,但我什至无法通过黑莓上的登录页面。还有其他人设法在黑莓上进行ajax调用吗?我真的不想为黑莓手机设置单独的页面

这是登录页面aspx的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Sicon.Web.WAP.App.Pages.Mobile.Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="../../JavaScripts/jquery.mobile.min.css" rel="stylesheet" type="text/css" />
<script src="../../JavaScripts/jquery.min.js" type="text/javascript"></script>
<script src="../../JavaScripts/jquery.mobile.min.js" type="text/javascript"></script>
</head>
<body>
<form id="login" runat="server" accept-charset="utf-8">
<div id="Invoices" data-role="page" data-theme="b">
<div data-role="header" data-theme="b">
<h1>
WAP - Login</h1>
</div>
<div data-role="content" data-theme="b">
<div align="center">
<img src="Sicon_LogoHz_rgb72.png" />
</div>
<ul data-role="listview" data-inset="true">
<li>
<input type="text" value="" name="username" placeholder="Username" id="username" />
</li>
<li>
<input type="password" value="" name="password" placeholder="Password" id="password" />
</li>
</ul>
<a class="login" data-role="button" data-theme="b">Login</a> <a data-role="button"
data-theme="a">Cancel</a>
</div>
</div>
</form>
<script type="text/javascript">

var _ajaxEnabled = true;

$(document).ready(function()
{
_ajaxEnabled = $.support.ajax;
});

//Get base URL
var baseUrl = "<%= ResolveUrl("~/") %>";

//Function to resolve a URL
function ResolveUrl(url)
{
if (url.indexOf("~/") == 0)
{
url = baseUrl + url.substring(2);
}
return url;
}

//Login form Login link click
$("#login a.login").click(function (e) {
//Get the form
var $form = $(this).closest("form");

//Perform login
return app.login($form);
});

//Login form submit
$("#login").submit(function (e) {
//Get the form
var $form = $(this);

//Perform login
return app.login($form);
});

//class to handle login
var app = {
login: function ($form) {

var $Username = $("#username").val();
var $Password = $("#password").val();

//Call the approve method on the code behind
$.ajax({
type: "POST",
url: ResolveUrl("~/Pages/Mobile/Login.aspx/LoginUser"),
data: "{'Username':'" + $Username + "', 'Password':'" + $Password + "' }", //Pass the parameter names and values
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
error: function (jqXHR, textStatus, errorThrown) {
alert("Error- Status: " + textStatus + " jqXHR Status: " + jqXHR.status + " jqXHR Response Text:" + jqXHR.responseText) },
success: function (msg) {
if (msg.d == true) {
window.location.href = ResolveUrl("~/Pages/Mobile/Index.aspx");
}
else {
//show error
alert('login failed');
}
}
});

return false;
}
}
</script>
</body>
</html>

最后是登录方法的代码:

/// <summary>
/// Logs in the user
/// </summary>
/// <param name="Username">The username</param>
/// <param name="Password">The password</param>
/// <returns></returns>
[WebMethod, ScriptMethod]
public static bool LoginUser( string Username, string Password )
{
try
{
StaticStore.CurrentUser = new User( Username, Password );

//check the login details were correct
if ( StaticStore.CurrentUser.IsAuthentiacted )
{
//change the status to logged in
StaticStore.CurrentUser.LoginStatus = Objects.Enums.LoginStatus.LoggedIn;

//Store the user ID in the list of active users
( HttpContext.Current.Application[ SessionKeys.ActiveUsers ] as Dictionary<string, int> )[ HttpContext.Current.Session.SessionID ] = StaticStore.CurrentUser.UserID;

return true;
}
else
{
return false;
}
}
catch ( Exception ex )
{
return false;
}
}

最佳答案

你没有说你使用的是哪个版本的jqmobile。 4.1 版本已于 4 月 7 日发布。您必须记住,jqmobile 甚至还没有 Beta 版本,并且 BB OS 5 被列为 B 级 (http://jquerymobile.com/gbs/),因此它正在获得较少关注。

您的应用程序中可能还有其他 ajax 需要处理,但登录如此简单,为什么不将其重组为简单的表单帖子?

此外,承认 BB5 是一个问题:

https://github.com/jquery/jquery-mobile/issues/1245

关于asp.net - jQuery黑莓ajax问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5567130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com