2014-09-02 75 views
0

访问余烬数据REST请求头这是RESTAdapter码作为灰烬JS指南中:无法从PHP SLIM框架

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    namespace: 'emberboot/api', 

    headers: { 
     'API_KEY': 'secret key' 
    } 
}); 

这是从SLIM PHP得到标题的代码。的get头功能在这里http://docs.slimframework.com/#Request-Headers

// - http://localhost/emberboot/api/posts 
// - $app->get('/posts', 'getPosts'); //get all post 

function getPosts() 
{ 
    $request = \Slim\Slim::getInstance()->request(); 
    $key = $request->headers->get('API_KEY'); 

    //logging 
    $file = 'headers.txt'; 
    file_put_contents($file, $key); 
    ; 
    ; 

证明这是来自Chrome开发者工具:

enter image description here

显然没有错,从灰烬数据部分堂妹头是存在的。但是日志文件:headers.txt根本不包含文本 - 空!

UDATED - ANSWERS AS SOLVE BY @engvrdr。使用破折号代替下划线

这是RESTAdapter代码UPDATED!

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    namespace: 'emberboot/api', 

    headers: { 
     'API-KEY': 'secret key' 
    } 
}); 

苗条的PHP代码更新:

function getPosts() 
{ 
    $request = \Slim\Slim::getInstance()->request(); 
    $headers = $request->headers; 
    $apiKey = $headers->get('API-KEY'); 
    $file = 'headers.txt'; 
    file_put_contents($file, $apiKey); 
    ; 
    ; 

回答

2

我没有太大的苗条专家,但你可以试试吗? (在文档的请求似乎是一个财产不是方法)

function getPosts() 
{ 
$app = \Slim\Slim::getInstance(); 
$key = $app->request->headers->get('API-KEY'); 

//logging 
$file = 'headers.txt'; 
file_put_contents($file, $key); 

编辑:在HTTP标头名 因为我发现了它是关于底线的问题(_)(Why underscores are forbidden in HTTP header names

,如果你改变它到API-KEY它将工作。

+0

仍然失败 - headers.txt为空 – 2014-09-02 11:15:18

+0

@ rosely-kumoi我已经更新了答案,你可以再试一次吗? – engvrdr 2014-09-02 12:11:03

+0

仍然失败 - 我已经在Slim网站提交问题帖子 - http://help.slimframework.com/ - 等待他们的回复 – 2014-09-02 12:15:32