无法获得Angular $资源以发送正确的标头

时间:2014-03-18 18:11:12

标签: javascript angularjs cross-domain parse-platform

我正在构建一个原型Angular应用程序,使用Parse作为临时RESTful后端(直到真正的restful后端完成)

我已经设置了一个带有$ resource()的工厂,但我经常会获得401未授权。

现在我的工厂看起来像这样(APPIDKEY和APIKEY当然会被编辑)

app.factory('eventFactory', ['$resource', function($resource){
        return $resource('https://api.parse.com/1/classes/Events',{}, 
            {headers:{"X-Parse-Application-Id": "APPIDKEY",
           "X-Parse-REST-API-Key": "APIKEY"}});

        }
    ]);

我也试过写这样的$ resrouce。

$resource('https://myAppID:javascript-key=myJavaScriptKey@api.parse.com/1/classes/Events');

但是这也会返回401.但是如果我将该URL复制并粘贴到我的浏览器中,屏幕会打印出请求中的所有对象。

我已经进行了大量的谷歌搜索并多次阅读$ resource文档,但我仍然无法弄清楚这一点。我认为它与跨源策略有关,但解析文档说

'对于Javascript使用,Parse Cloud支持跨源资源共享,因此您可以将这些头与XMLHttpRequest一起使用。所以我有点难过。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

在我的module.config函数中添加这两行修复了它。

$httpProvider.defaults.headers.common['X-Parse-Application-Id']="APPIDKEY"
$httpProvider.defaults.headers.common['X-Parse-REST-API-Key']="RESTAPIKEY"

其中APPIDKEY和RESTAPIKEY等于Parse.com提供的密钥