" No' Access-Control-Allow-Origin'标头出现在请求的资源上#34;向Jawbone UP API发送请求时出错

时间:2016-09-15 21:24:54

标签: php json jawbone

我已经构建了一个自定义数据库,我希望用我的一些UP3数据填充它。我已成功通过Bearer令牌验证并收到JSON响应。从这里开始,我有点迷失。

从文档中,我需要向

发送GET请求
https://jawbone.com/nudge/api/v.1.1/users/@me

每次我这样做,我都会:

  

否'访问控制 - 允许 - 来源'标头出现在请求的资源上

我已添加:

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

(将example.com替换为我的域名)

发送GET请求的页面。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

Jawbone端点都将CORS标头设置为

Access-Control-Allow-Origin: *

但是,这仍然不允许来自localhost的跨站点请求(感谢@TirthrajBarot在评论中的解释),因此您应该使用类似Access-Control-Allow-Origin extension的内容在Chrome中禁用此检查。

答案 1 :(得分:0)

在对用户和权限进行身份验证后,我会重定向到另一个页面以验证身份验证代码并获取访问令牌。从那里,我转到另一页面发送数据的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);

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