使用 Phonegap 处理 Windows Phone 上的 401 未经授权错误

2024-01-01

我正在 Windows Phone 7 上创建一个带有phonegap 的应用程序,需要在服务器上进行身份验证。当我们使用正确的用户名和密码登录时,我们会得到 200 状态。一切正常。但是,如果我们输入错误的登录名或密码,服务器会向我们发送 401 错误。这冻结了我的申请。我需要杀死它并重新启动它。所以不太练习。

我在计算机上使用 fiddler 检查响应,手机收到 401 错误,我在代码中管理此错误。这适用于我的其他平台(android 和 ios)。

所以我想知道如何处理这个错误。也许我可以更改 Windows Phone 项目上的 cs 文件来处理此错误。

欢迎任何帮助

这是代码

$.support.cors = true;
    $.ajax({
        type: "POST",
        dataType: "HTTP/1.1",
        url: 'https://xxx.xxx-xxx.com/issue/wrap',
        data: data,
        cache: 'false',
        async: false,
        error: function (data) {
            console.log(data);
            console.log("error");
            //navigator.notification.alert(data);
        },
        complete: saveToken
    });

thanks


我遇到了同样的问题,我找到的唯一解决方案是实现 Phonegap 插件。

这是我使用的 C# 代码:

namespace WPCordovaClassLib.Cordova.Commands
{
    [DataContract]
    public class PhonegapWindowsPhonePostObject
    {
        [DataMember(IsRequired = false, Name = "yourParamName1")]
        public string yourParam1;

        [DataMember(IsRequired = false, Name = "yourParamName2")]
        public string yourParam2;
    }

    public class PhonegapWindowsPhonePost: BaseCommand
    {
        public void post(string options)
        {
            PhonegapWindowsPhonePostObject pwppo = JSON.JsonHelper.Deserialize<PhonegapWindowsPhonePostObject>(options);

            try
            {
                System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    var data = "YOUR DATA STRING HERE"; //use the pwppo object to retrieve your parameters
                    var url = "URL OF THE SERVICE HERE";


                    WebClient wc = new SharpGIS.GZipWebClient();
                    var URI = new Uri(url);
                    wc.Encoding = Encoding.UTF8;
                    wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                    wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc__UploadStringCompleted);
                    wc.UploadStringAsync(URI, "POST", data);
                });

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        void wc__UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
        {
            try
            {
                if (e.Result != null)
                    this.DispatchCommandResult(new PluginResult(PluginResult.Status.OK, e.Result));
                else
                    this.DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Error 401"));
            }
            catch (Exception ex)
            {
                this.DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, ex.Message));
                // no http status code available
            }
        }
    }
}

以下是从您的应用程序调用插件的 Javascript 代码:

function loginToWebService(yourParam1, yourParam2) {

    var options = { "yourParamName1": yourParam1, "yourParamName2": yourParam2};
    cordova.exec(success, error,"PhonegapWindowsPhonePost","post", options);
}

我希望它能帮助你。

注意:Phonegap 2.8 版本没有解决与发行说明所述相反的问题...

Bye !

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Phonegap 处理 Windows Phone 上的 401 未经授权错误 的相关文章

  • 如何在cordova中动态加载CSS

    我正在尝试通过 xhr 请求在 cordova 中动态加载 CSS CSS 的加载不是问题 我可以通过 xhr 加载它并通过 HTML5 文件 API 将其存储到文件系统 然后我就可以得到一个完美的 URL 但是如果我通过 javascri
  • Apache Cordova (Phonegap):跨站点脚本编写需要 jsonp 吗?

    我刚刚开始使用 Apache Cordova 我有一个库可以 通过ajax 调用soap 服务器 当我在本地计算机上的 Chrome 中运行这些程序时 在尝试调用该服务时会出现跨站点脚本错误 当我在 iOS 模拟器中使用 Cordova 浏
  • 使用 Google Calendar API 返回 401(未经授权)

    我尝试通过 JavaScript 使用 Google Calendar API 并在使用以下代码时不断收到 401 错误响应 ajax dataType json url https www googleapis com calendar
  • Phonegap 中使用 AJAX 的 CSRF 令牌

    我正在开发一个应用程序Phonegap使用 Django 后端 后端使用csrf 所以我需要我的Phonegap要使用的应用程序csrf所以它可以与Django 我读到你可以使用csrf通过Ajax 但我没能让它工作 您能举个例子告诉我我该
  • 如何在需要时获取 cordova 2.9 的电池电量?

    window addEventListener batterystatus onBatteryStatus false function onBatteryStatus info Handle the online event consol
  • 在 Ionic/Cordova 中接收 URL

    我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我发现这个科尔多瓦插件 https github com Initsogar cordova webintent
  • Keycloak 重定向 URI 提供 https://localhost 而不是 http://localhost

    我正在尝试在 Keycloak 上验证 Cordova Android 应用程序 我之前提出过一个关于它的问题 但我在这里将其简化为仅提供要点 因为我在过去 2 3 天中发现了很多东西 Cordova Android 应用程序中的网页不可用
  • Phonegap html5视频无法播放

    我正在尝试在 iPad 上的phonegap 应用程序中播放视频 该视频给了我错误 MEDIA ERR SRC NOT SUPPORTED 我尝试播放的视频不是本地的 当我在该视频上使用curl I 时 这是它带来的信息 HTTP 1 1
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • jQuery Mobile - 启用滚动禁用页面拖动

    我目前正在使用phonegap 1 5 和jQuery Mobile 开发一个iOS 应用程序 据我所知 我们可以使用以下 JavaScript 禁用页面拖动 function preventBehavior e e preventDefa
  • 使用 org.apache.cordova.file 获取选定的文件大小

    使用 org apache cordova file 插件 我可以选择该文件并获取该文件的本机路径 之后 我必须限制用户根据文件大小选择文件 但我无法理解文件大小 我的问题是我无法使用该插件获取文件大小 为此我正在使用本教程 http th
  • 在 Phonegap InAppBrowser 中显示加载指示器

    当使用以下代码加载页面时 我尝试在 Phonegap InAppBrowser 中显示加载指示器 var ref ref window open http www google com top location no ref addEven
  • Android - 如何在 Android WebView 中使用 Javascript?

    我的混合 Android 应用程序遇到问题 我需要一个带有 HTML 的 WebView 在这个 HTML 中我有一个按钮 我有一个带有 WebView 的布局 并且 HTML 中有一个按钮 当用户单击此按钮时 我尝试使用另一个屏幕 也是带
  • Phonegap - cordova 在 Android 和 iOS 设备上延迟且缓慢

    我刚刚开始使用 zend studio 开始我的第一个 PhoneGap 项目 但是 在我构建并部署它之后 该应用程序非常慢 Android 和 iOS 均可 滚动滞后 如果我按下按钮 转到下一页的速度很慢 有什么办法可以提高它的性能吗 提
  • 如何在Android上获取角度中的按键事件?

    我们如何在 Android 上的 Angular 中获取按键事件及其值 我使用phonegap Cordova Angular JS
  • 如何在 Swift 中编写 Cordova 插件?

    我将现有的自定义插件转换为 Swift 语言 位于Plugins CustomPluginInSwift swift import Foundation class CustomPluginInSwift CDVPlugin func ge
  • Android 应用程序 Phonegap 中的 Admob 实现

    我将一个 jquery 脚本转换为 Android 应用程序 现在我想将 admob 添加到其中 这可能吗 谷歌从那时起禁止在移动应用程序中使用 AdSense 在移动应用程序中使用 AdSense 移动广告违反了 AdSense 政策 移
  • iOS 键盘显示后分屏宽度

    我刚刚开始研究 Cordova 应用程序对分屏多任务处理的支持 到目前为止 该应用程序在模拟器中的 iPad 上显示和调整大小都很好 但是当我单击编辑字段并显示软件键盘时 100 宽度的值开始返回整个屏幕 而不是给出的窗口 初始显示 到目前
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 只允许输入字母

    如何过滤虚拟键盘中的非字母键 以下方法仅适用于拉丁字母 不幸的是 public static bool IsLetter int val return InRange val 65 90 InRange val 97 122 InRange

随机推荐

  • 在 Excel 中创建新函数

    我创建了一个 IF公式 在Excel中 想要将该公式转换为函数我阅读了多篇文章 但无法将公式转换为函数 公式如下 IF LEFT L3 4 0321 12 ABC type IF LEFT L3 3 021 543 XYZ type IF
  • 隐藏 wp-admin 使用 htaccess

    我想使用 htaccess文件将wp admin更改为admin panel 当访问链接admin panel时 它显示wp admin的内容 但是当访问链接wp admin时 它会注意到找不到 BEGIN WordPress
  • 文件下载问题:文件名中空格被截断!

    当我正在编写从服务器下载文件的代码时 使用 Response AddHeader Content Disposition attachment filename Server UrlPathEncode Path GetFileName F
  • 如果 CubeField.Orientation = xlPageField 如何设置 PivotField.HiddenItemsList 属性的值

    任务是自动化 OLAP 数据透视表数据过滤 我需要排除名为 sPivotFieldName 的数据透视字段中的一些项目 下面的代码工作得很好 With Worksheets sWorksheetName PivotTables sPivot
  • 科特林中的片段

    我被困在我的应用程序中 因为我必须用 kotlin 中的导航抽屉做一个片段 任何人都可以帮忙吗 我在网上搜索了很多东西 但我还没有找到任何东西 下面是我在主要活动中所做的两项 我希望它也出现在片段中 override fun onNavig
  • rxJava,定期刷新api数据

    我使用以下 observable 来调用改造 api 然后将响应保存到缓存文件中 Override public Observable
  • GLFW 打开 OpenGL 3.2 上下文,但 Freeglut 不能 - 为什么?

    我正在 Mac 上工作 我已经编译并安装了 FreeGlut 但我似乎无法使用它获取 OpenGL 3 2 上下文 不过 我在使用 GLFW 时可以毫无问题地获取它 所以在 GLFW 中 这段代码工作得很好 glfwOpenWindowHi
  • 如何强制 Firestore 客户端应用程序维护集合的正确文档计数?

    Firestore 无法查询集合的大小 因此如果客户端应用程序需要知道此值 则需要对另一个集合中的文档进行一些维护来保存此计数 但是 它要求客户端正确执行事务 以便在添加和删除文档时保持此计数最新 恶意或损坏的客户端可能会独立修改集合或计数
  • 带图片背景的点领导者

    所以我正在为一家餐厅建立一个网站 但我陷入了困境 我正在尝试在那里创建菜单 这个想法是将食物名称向左对齐 价格向右对齐 并用点填充它们之间的空白 像这样 汉堡 4 00 美元 XXL 汉堡 4 00 奶昔 4 00 美元 我找到了几种解决方
  • 在 Android 中使用 putSerialized

    putSerialized 坏了吗 当我使用 putSerialized 传递 null 时 FillSummary class 会按其应有的方式启动 然而 如果我传递 TestSerial 对象 Android 就会强制关闭 我需要做什么
  • PyDev 无法识别 PyQt5

    我正在关注 pyqt 教程 并得到以下代码 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import class Exam
  • api-platform.com 无法为该类型的项目生成 IRI

    我正在尝试设置我的第一个 api 平台实例 并且遇到了一些关于 IDE 的可能是菜鸟问题 我想做的是设置一个注册和重置实体 以便处理来自应用程序的注册和密码提醒 然后将实体传递给自定义控制器以进行一些检查 平衡和邮件 还没有抽出时间 但在发
  • “center_horizo​​ntal|center_vertical”和“center”之间有什么区别

    我想将图像置于线性布局的中心 有什么区别吗 android gravity center horizontal center vertical and android gravity center 不 没有区别 根据源码 public st
  • 与(有符号)枚举值的按位运算

    我正在使用标志的枚举值 typedef enum a 0x00 b 0x01u the u has no influence as expected c 0x02u the u has no influence as expected en
  • PHP:如何使用php捕获浏览器窗口屏幕?

    首先 我不确定是否可以用php捕获浏览器窗口屏幕 那么 怎么做 如果可能的话 最好只捕获网站内容 不包括菜单栏 工具栏 状态栏等浏览器部分 Thanks 有imagegrabscreen http php net manual de fun
  • PHP 5.x 是否有某种 HashSet 或 Set 类?

    我已经习惯了 JavaHashSets ArrayLists和别的Collections 但我现在正在开发一个 PHP 项目 我需要创建一个集合 用对象 在本例中为字符串 填充该集合 但该集合只能包含每个对象一次 另外 我想最终从该集合中删
  • 如何将 mysql 数据库从 phpmyadmin 推送到heroku 的cleardb?

    我正在使用 WAMP 服务器来运行我的 php 应用程序 我在 phpmyadmin 中有一个数据库 BOOK 我怎样才能将这些数据推送到heroku 我已经使用 add on 将cleardb 添加到我的应用程序中 heroku conf
  • jquery - 选择所有带有 js 数组名称的复选框

    我想以如下形式使用 JQuery 检查全部 功能 http jetlogs org jquery jquery select all html http jetlogs org jquery jquery select all html 我
  • MySQLdb、mysqlclient 和 MySQL 连接器/Python 之间有什么区别?

    所以我一直在尝试用 python 进行一些数据库更新 在设置整个开发环境时 我遇到了这三件事让我头晕 There s MySQLdb http mysql python sourceforge net MySQLdb html There
  • 使用 Phonegap 处理 Windows Phone 上的 401 未经授权错误

    我正在 Windows Phone 7 上创建一个带有phonegap 的应用程序 需要在服务器上进行身份验证 当我们使用正确的用户名和密码登录时 我们会得到 200 状态 一切正常 但是 如果我们输入错误的登录名或密码 服务器会向我们发送