“没有& # 39;Access-Control-Allow-Origin& # 39;标头存在于请求的资源"


"No 'Access-Control-Allow-Origin' header is present on the requested resource" error when sending request to Jawbone UP API

我已经构建了一个自定义数据库,我想用一些UP3数据填充它。我已经成功地进行了身份验证,并使用我的Bearer令牌接收了JSON响应。从这里开始,我有点迷路了。

从文档中,我需要发送一个GET请求到

https://jawbone.com/nudge/api/v.1.1/users/@me

每次我这样做,我得到:

请求的资源上没有'Access-Control-Allow-Origin'标头

我说:

header('Access-Control-Allow-Origin: http://example.com'); 

(将example.com替换为my domain)

到正在发送GET请求的页面。任何想法吗?

Jawbone端点都有CORS标头设置为

Access-Control-Allow-Origin: *

然而,这仍然不允许来自本地主机的跨站点请求(感谢@ tirthrrajbarot在评论中的解释),所以你应该在Chrome中禁用此检查,如Access-Control-Allow-Origin扩展。

在对用户和权限进行身份验证后,我重定向到另一个页面以验证身份验证代码并获得访问令牌。从那里,我转到另一个页面发送数据的GET请求。下面是正在工作的代码:

    $url = "https://jawbone.com/nudge/api/v.1.1/users/@me/sleeps?" . $sleepDate;
    $options = array(
      'http'=>array(
        'method'=>"GET",
        'header'=>"Accept: application/json'r'n" .
                  "Authorization: Bearer " . $accessToken . "'r'n" . 
                  "Host: {my website}"
      )
    );
    $context = stream_context_create($options);
    $sleepData = @file_get_contents($url, false, $context);

数据被返回、解码和处理。结果将被推入表单中的文本框中,供用户根据需要进行编辑。还有一个将数据输入数据库的按钮(以及一堆输入其他相关详细信息的隐藏表单字段)