【问题标题】:Not able to POST data using jQuery Ajax [duplicate]无法使用 jQuery Ajax 发布数据 [重复]
【发布时间】:2018-12-02 23:39:33
【问题描述】:

我试图使用 Ajax jQuery 将数据发布到 Json API。但我收到以下错误。

HTTP403: FORBIDDEN - 服务器理解请求,但是 拒绝履行它。 (XHR)选项 - http://127.0.0.1:7002/player/

但我能够使用 POSTMAN 发布数据。

这是我的代码。

$(document).ready(function(){
  // Post the Data from register form

  $("#submit").click(function(){
    var FName= $("#PlayerFirstName").val();
    var LName= $("#PlayerLastName").val();
    var VEmailID= $("#PlayerEmailID").val();
    /*
    $.post("http://127.0.0.1:7002/player/",
      {first_name:FName,last_name:LName,email:VEmailID},
      function(data, status, jqXHR) {
        $("p").append('status: ' + status + ', data: ' + data);
      });

    */
    $.ajax({
      url:"http://127.0.0.1:7002/player/",
      type: "POST",
      data: {first_name:FName,last_name:LName,email:VEmailID},
      contentType:"application/json; charset=utf-8",
      dataType:"json",
     })
  })

});

【问题讨论】:

  • 也许您可以检查无数重复项之一,谷歌或搜索应该很容易找到它们。但简而言之,Postman 等 Chrome 扩展程序具有跨域权限,而您的应用没有,因此会被拒绝。

标签: javascript jquery json ajax postman


【解决方案1】:

看起来您正在向不同的服务器或与您调用的页面的 URL 不同的端口发出请求,这意味着它是一个跨站点 HTTP 请求。 来自Cross-Origin Resource Sharing (CORS)

...此外,对于可能对服务器数据造成副作用的 HTTP 请求方法(特别是对于 GET 以外的 HTTP 方法,或者对于某些 MIME 类型的 POST 使用),规范要求浏览器“预检”请求,使用 HTTP OPTIONS 请求方法从服务器请求支持的方法,然后,在服务器“批准”后,使用实际的 HTTP 请求方法发送实际请求......

您应该在您的服务器上允许 OPTIONS 请求并发送带有 Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Allow-Methods 标头的响应。

【讨论】:

  • 感谢您的 cmets。我将请求我的 API 服务器管理员允许您提到的选项。
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多