代码之家  ›  专栏  ›  技术社区  ›  Rhys Wynne

获取“请求的资源上不存在“Access Control Allow Origin”标头。”错误

  •  2
  • Rhys Wynne  · 技术社区  · 9 年前

    关于上一个问题- Uber API - HTTPS needed for Price Estimates? -我已经在我们的网站上设置了https。

    优步开发者上的我的应用程序设置了重定向URL&源URL是https域。

    遵循本页上的代码- https://developer.uber.com/v1/api-reference/#request-response -我试过测试这里给出的代码:-

    var xhr = new XMLHttpRequest();
    xhr.setRequestHeader("Authorization", "Token YOUR_SERVER_TOKEN");
    xhr.open('GET', 'https://api.uber.com/v1/products?latitude=37.7759792&longitude=-122.41823');
    

    不幸的是,我收到错误“Uncaught InvalidStateError:未能对'XMLHttpRequest'执行'setRequestHeader':对象的状态必须为OPENED”。

    然后我切换了.setRequestHeader&。打开行,我收到以下错误:-

    “XMLHttpRequest无法加载 https://api.uber.com/v1/estimates/price?start_latitude=53.4521477&start_longitude=-2.2750512&end_latitude=53.4522973&end_longitude=-2.275001 。请求的资源上不存在“Access Control Allow Origin”标头。原点' https://milliondollarwiki.co.uk 因此不允许访问。"

    以下是有问题的最终代码:-

    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://api.uber.com/v1/estimates/price?start_latitude=' + position.coords.latitude + '&start_longitude=' + position.coords.longitude + '&end_latitude=53.4522973&end_longitude=-2.275001');
    xhr.setRequestHeader("Authorization", "Token bTVn8k_wF3JpmHlZ0GhdbMWaLgbLMSaYof8rs-S_");        
    xhr.send();
    

    在Uber API中交互的URL位于Redirect&原始URL,但我认为这不会引起问题。

    有什么问题吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Scott Biggart    9 年前

    我查过你的申请,现在你已经

    https://milliondollarwiki.co.uk/scratchpad/

    作为ORIGIN URI。对于CORS,您应该只指定服务器地址,而不指定路径(并且没有斜杠)。尝试将其更改为:

    https://milliondollarwiki.co.uk

    看看这能不能解决你的问题。

        2
  •  0
  •   Rhys Wynne    9 年前

    没错,我设法把它修好了:)。我不得不重新创建这个应用程序,花了一两分钟,但它很好。奇数:-/