【问题标题】:Consume rest api with ajax get使用 ajax get 使用 rest api
【发布时间】:2019-04-28 03:13:51
【问题描述】:
var settings = {
 async: true,
 crossDomain: true,
 url: "http://10.250.252.1:43001/parameter-api/calculation/outlines/",
 method: "GET",
 headers: {
 "Authorization": "Bearer AB2E2DB9C0894F0CAAE8ABBCBDA5E981",
 "cache-control": "no-cache",
 "Postman-Token": "e8b2a812-41c1-4b78-8e5b-2bbec1e9013f" 
            }
        }

 $.ajax(settings).done(function (response) {
 console.log(response);
        });

我从邮递员那里生成了该代码,一切正常工作都在那里创建。

但是当我在 javascript 中尝试时,我得到了错误(在控制台中):

选项http://10.250.252.1:43001/parameter-api/calculation/outlines/ 404(未找到)访问 XMLHttpRequest 在 'http://10.250.252.1:43001/parameter-api/calculation/outlines/' 来自 来源“http://localhost:8080”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:它 没有 HTTP ok 状态。

但是当我删除我的标题时,我只得到这个错误:

获取http://10.250.252.1:43001/parameter-api/calculation/outlines/ 401 (未经授权)

我使用 google chrome 的 cors 扩展。

基本上我想从该服务器获取数据,该服务器使用 OAuth2,我有一个令牌。

谁能帮帮我。

【问题讨论】:

标签: ajax api oauth-2.0 cors


【解决方案1】:

将此添加到您的标题设置中:

Access-Control-Allow-Origin: *

【讨论】:

  • 盲目地添加通配符作为来源通常不是一个好主意。我建议编辑答案以仅添加必需的主机名。
  • 它不起作用,当我在没有扩展的情况下这样做时,它给了我另一个错误:从源 'localhost:8080' 访问 XMLHttpRequest 在 '10.250.252.1:43001/parameter-api/calculation/outlines' 已被 CORS 策略阻止:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。当我添加“Access-Control-Allow-Origin”:“*”并启用 cors 扩展时,仍然无法正常工作
  • 我明白了,这是一个真正的 CORS 问题。检查这个restlet.com/company/blog/2016/09/27/how-to-fix-cors-problems
  • 我修复了它,必须禁用谷歌浏览器上的网络安全和数据用户才能工作,很难我有 cors 扩展,服务器 api 也会自行调整以防止发生此类事情。谢谢你的时间
猜你喜欢
  • 1970-01-01
  • 2018-12-17
  • 2016-12-29
  • 1970-01-01
  • 2016-06-05
  • 2017-11-08
  • 2015-05-04
  • 2017-03-09
  • 1970-01-01
相关资源
最近更新 更多