【问题标题】:HTTP GET request to server only occasionally works对服务器的 HTTP GET 请求仅偶尔有效
【发布时间】:2017-12-07 06:06:06
【问题描述】:

我正在使用 jQuery Ajax 发出 GET 请求。有时它工作得很好,但有时当我查看 chrome 开发工具控制台时,我会得到 403 禁止。这是服务器问题还是我的代码?

当我登录时,我会从服务器取回加密的密码、用户名和 ID。然后我将它存储在LocalStorage 中,因为我试图开始工作的请求在另一个页面上。我还需要使用 AES 加密从这些字段中生成客户端令牌。为此,我使用CryptoJS。对于我的请求,我需要发送从LocalStorage 检索到的密码、用户名、ID 和客户端令牌。我意识到这可能不是一个好方法,但我无法控制服务器端。

编辑:这是我对服务的 Ajax 调用:

 $("#system-form").submit(function (e) {
    $.ajax({
        type: "GET",
        url: "myurl",
        data: "User.Username=" + localStorage.getItem("guid") + "&User.Password=" + localStorage.getItem("password") + "&User.SecUser=" + localStorage.getItem("secUser") + "&ClientAppID=" + localStorage.getItem("ClientAppId") +"&"+ $(this).serialize(),
    })
    .done(function(data) {
        //parse data
    })
    .fail(function (xhr, textStatus, error) {
        console.log(JSON.stringify(xhr.responseText));
    });
    e.preventDefault(); 
});

【问题讨论】:

  • Is this a serve issue or my code? - 是的,可能是这两个之一
  • 我已经为我的ajax 通话添加了代码。
  • 我查看了 taha 发布的链接,但不确定如何使用标题。我没有 api 密钥。
  • 服务器拒绝您的身份验证参数。在这方面我们无能为力。

标签: javascript ajax local-storage httprequest


【解决方案1】:

我意识到我的问题是我需要对我的身份验证参数进行 URL 编码。我通过使用encodeURIComponent 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-18
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2020-04-18
    • 1970-01-01
    相关资源
    最近更新 更多