javascript - 使用 Ajax.Request 进行身份验证

标签 javascript ajax authentication webos ajax.request

我目前有一个 Palm WebOS 应用程序,它使用 Ajax.Request 通过基本身份验证连接到 Web 服务。要发送用户名和密码,我只需将其包含在 url 中(即 http://username:password@ip-address:port/ ),效果非常好,预计当密码包含字母数字字符以外的任何内容时(例如,我最近有一个用户给我发了一封电子邮件,其中包含他的密码中有“@”和“&”,但他无法连接,因为这些符号没有被正确解析为 URL)。有什么办法可以在 url 中发送凭据,以便我可以允许用户在密码中使用字母数字以外的其他内容吗?

    var username = cookie.get().servers[this.serverIndex].username;
    var password = cookie.get().servers[this.serverIndex].password;
    this.auth = 'Basic ' + Base64.encode(username + ':' + password);
    var baseUrl = 'http://' + url + ':' + port + '/gui/';
    this.baseUrl = baseUrl;


    var request = new Ajax.Request(this.tokenUrl, {
        method: 'get',
        timeout: 2000,
        headers: {
            Authorization: this.auth
        },
        onSuccess: successFunc,
        onFailure: this.failure.bind(this)
    });

响应是(出于安全原因我删除了网址):

{"request": {"options": {"method": "get", "asynchronous": true, "contentType": "application/x-www-form-urlencoded", "encoding": "UTF-8", "parameters": {}, "evalJSON": true, "evalJS": true, "timeout": 2000, "headers": {"Authorization": "Basic c3VubW9yZ3VzOmZyb2dneUAlMjY="}}, "transport": {"readyState": 4, "onloadstart": null, "withCredentials": false, "onerror": null, "onabort": null, "status": 401, "responseXML": null, "onload": null, "onprogress": null, "upload": {"onloadstart": null, "onabort": null, "onerror": null, "onload": null, "onprogress": null}, "statusText": "", "responseText": "", "UNSENT": 0, "OPENED": 1, "HEADERS_RECEIVED": 2, "LOADING": 3, "DONE": 4}, "url": ""

最佳答案

发送带有 header 的基本身份验证信息: http://coderseye.com/2007/how-to-do-http-basic-auth-in-ajax.html

var auth = 'Basic ' + Base64.encode(user + ':' + pass);
Ext.Ajax.request({
    url : url,
    method : 'GET',
    headers : { Authorization : auth }
});

关于javascript - 使用 Ajax.Request 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3298891/

相关文章:

javascript - 在新标签页中打开时自动播放幻灯片不起作用

jquery - 在 Node.js 中使用数据表

javascript - AJAX 中的 XMLHttpRequest 变量如何工作?它的工作原理是什么?

java - 如何使用 FreeMarker 通过 Spring Security 成功注销

security - 访问 token 是否加密

Javascript:运行函数后添加 'false'

javascript - 将多个 Controller 中的 AngularJS 范围对象合并为一个对象

javascript - 创建 JavaScript 测验应用程序(伪代码)

jquery - 如何根据不同的 ajax 调用显示不同的预加载器 gif?

ios - 登录后SwiftUI LoginView不会消失