【问题标题】:AJAX POST request working in POSTMAN but not in ChromeAJAX POST 请求在 POSTMAN 中有效,但在 Chrome 中无效
【发布时间】:2017-09-14 02:44:23
【问题描述】:

我正在尝试发出一个简单的 AJAX POST 请求。在 POSTMAN 中执行此请求时工作正常。但是,当我在 jQuery 中对其进行编码并尝试发出相同的请求时,我得到了

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'file://' 不允许访问。响应的 HTTP 状态代码为 415。

现在,我必须发出一个 POST 请求,因此在请求中使用 JSONP 作为类型将无济于事。我无权访问服务器代码来修改它。我的基本理解是,如果 POSTMAN 可以执行,那么我应该也可以执行。

【问题讨论】:

  • 您在 postman 和 chrome 中使用的 URI(我假设在 Web 应用程序中(可能是 ajax 调用))肯定是相同的吗?
  • 不一样,邮递员像导航员一样工作,您通过 javascript 代码从 localhost 域(或任何域)访问
  • @ÁlvaroTouzón。我能做点什么吗?
  • @KOUSIKMANDAL,是的,URI 是相同的。但是,当签入提琴手时,标题看起来不同。
  • 是的,您可以使用本地主机的背面从这里调用它

标签: javascript jquery ajax post postman


【解决方案1】:

状态码是不言自明的。 415 当您发送不受支持的内容类型(例如 xml)时,它会从服务器返回。仔细检查您在代码中传递给发布请求的数据类型。

415 UNSUPPORTED MEDIA TYPE 源服务器拒绝服务 请求,因为有效负载的格式不受此支持 目标资源上的方法。

格式问题可能是由于请求的指示 Content-Type 或 Content-Encoding,或作为检查的结果 直接数据。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415

【讨论】:

  • 敏锐的观察力。非常感谢,伙计
【解决方案2】:

如果它在 Postman 中工作,我不会自动在浏览器中工作。您仍然可以得到 CORS-错误。

您还可以检查内容类型,您会得到 HTTP STATUS 415,即UNSUPPORTED MEDIA TYPE 。这可能是您的问题,请求中的媒体类型不同。

我还注意到您从 file:// 提供服务,也许您应该托管它,以便改为从 localhost 为您的网站提供服务。

【讨论】:

    【解决方案3】:

    好的,所以问题是您直接从文件运行页面(可能只是在 Windows 中双击文件),而不是使用服务器。

    所以首先通过服务器访问页面,安装任何像apache这样的服务器,然后通过

    访问页面
    http://localhost/pagename
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2019-11-28
      • 2017-05-03
      • 2022-10-31
      • 2020-07-31
      • 2021-03-24
      • 2019-07-19
      相关资源
      最近更新 更多