【问题标题】:Call REST API in Jquery Ajax POST Method return 403 error在 Jquery Ajax POST 方法中调用 REST API 返回 403 错误
【发布时间】:2020-04-28 13:23:34
【问题描述】:

以下代码用于通过 jquery ajax 调用 Login rest api,但它返回 403 错误。我想知道我是否错过了 ajax 调用中的任何必要参数,或者它是服务器端错误。该源(HTML 文件)和目标(API)都在同一个云服务器中。

但是 api 在邮递员中运行良好,没有任何错误

$.ajax({
  type: "POST",
  url: 'https://mzzzzcloudx.am.co.in/login',
  dataType: 'json',
  data: {
    "login": "abcd@gmail.com",
    "password": "12345"
  }, //{"login":$("#login").val(), "password":$("#pass").val()},
  contentType: "application/json",
  headers: {
    "Content-type": "application/json",
    "Access-Control-Allow-Origin": "*"
  },
  success: function(data) {
    console.log(data);
  },
  error: function(err) {
    alert(err); //returns 403 error
    console.log(err);
  }
});

【问题讨论】:

  • AJAX 请求本身看起来不错,尽管 Access-Control-Allow-Origin 标头可以删除,因为它应该在来自服务器的响应中,而不是来自客户端的请求。如果这对您不起作用,那么您的请求与服务器期望的内容之间存在实现问题。因此,我们无能为力
  • 您可以尝试对数据进行字符串化data: JSON.stringify(your-data)吗?
  • 问题似乎出在服务器端...可能是发送的数据没有使用正确的属性名称?
  • 我试过 JSON.stringify 但得到同样的错误。我如何确定这是服务器端问题?
  • 请张贴您的 Postman 通话截图。

标签: javascript jquery ajax cors http-status-code-403


【解决方案1】:

您是否尝试删除数据部分的字段名称(loginpassword)中的引号?

data: {
login: "abcd@gmail.com",
password: "12345"}

另外,您是否确认 REST 方法 login() 中的字段名称(loginpassword)相同?

【讨论】:

  • 我尝试删除字段名称(登录名、密码)中的引号。但我再次面临同样的问题(出现 403 错误)。
  • 对不起。 403 错误表示您无权访问 REST 服务。你能检查一下服务端的授权吗?例如:匿名访问。
猜你喜欢
  • 2023-03-10
  • 2015-11-23
  • 2017-10-06
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 2013-09-03
  • 2013-10-01
  • 2014-08-07
相关资源
最近更新 更多