我正在研究“AngularJS + Rails”一书中的一个例子。一个例子是访问Git Repository Api,根据用户名从Github中提取存储库。此功能正常工作,直到下一章扩展角度$ http模块以使用Rails跨站点请求伪造保护。当我返回并使用Github页面时,Github拒绝连接并出现以下错误。
[Error] XMLHttpRequest cannot load https://api.github.com/users/dhh/repos.
Request header field X-CSRF-Token is not allowed by Access-Control-Allow-Headers
破坏角度功能的代码:
AngulaRails.config ["$httpProvider", ($httpProvider) ->
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content')
$httpProvider.defaults.headers.common.Accept = "application/json"
]
所以我知道我必须为抛出错误的一个页面禁用CSRF。什么代码会完成这个?当我更改$ httpProvider默认值时,您能快速解释实际发生的情况吗?为什么它打破了页面?