Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular$resource调用不被Access Control接受Safari允许与Chrome接受_Javascript_Angularjs_Safari_Resources_Cors - Fatal编程技术网

Javascript Angular$resource调用不被Access Control接受Safari允许与Chrome接受

Javascript Angular$resource调用不被Access Control接受Safari允许与Chrome接受,javascript,angularjs,safari,resources,cors,Javascript,Angularjs,Safari,Resources,Cors,我在这方面已经有一段时间了,因为我对angular和web开发还不熟悉,所以我不知道该去哪里找 我使用Angular中的$resource服务构建了一个简单的服务,它可以调用RESTapi,RESTapi设置为接受跨源调用: angular.module('vinifyApp') .factory('WinesVinibar',function($resource){ return $resource('http://devinify1.herokuapp.com/wines/'); }

我在这方面已经有一段时间了,因为我对angular和web开发还不熟悉,所以我不知道该去哪里找

我使用Angular中的$resource服务构建了一个简单的服务,它可以调用RESTapi,RESTapi设置为接受跨源调用:

angular.module('vinifyApp')
.factory('WinesVinibar',function($resource){
return $resource('http://devinify1.herokuapp.com/wines/');    
})
.controller('GetWinesVinibarCtrl', function($scope, WinesVinibar){
$scope.WINES = WinesVinibar.query();
}
我已经在本地和heroku上测试过这项服务,它在Chrome和Firefox上运行良好。以下是对Chrome的请求和响应:

Request Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Host:devinify1.herokuapp.com Origin:http://mobilevinify.herokuapp.com Referer:http://mobilevinify.herokuapp.com/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 Response Headersview source Access-Control-Allow-Origin:* Allow:GET, POST, HEAD, OPTIONS Connection:keep-alive Content-Type:application/json Date:Mon, 09 Dec 2013 16:16:36 GMT Server:gunicorn/18.0 transfer-encoding:chunked Vary:Accept, Cookie 但是,Safari的请求失败,出现以下错误:

[Error] Failed to load resource: Request header field Accept-Encoding is not allowed by Access-Control-Allow-Headers. (wines, line 0) 以下是请求和响应标题:

Request Access-Control-Request-Method GET User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71 Access-Control-Request-Headers accept-language, origin, accept-encoding Response Access-Control-Max-Age 86400 Access-Control-Allow-Methods GET, POST, PUT, PATCH, DELETE, OPTIONS Content-Type text/html; charset=utf-8 Access-Control-Allow-Origin * Connection keep-alive Access-Control-Allow-Headers x-requested-with, content-type, accept, origin, authorization, x-csrftoken Content-Length 0 编码似乎有问题,但我不知道该去哪里解决。
谢谢你的时间

您似乎遗漏了CORS\u ALLOW\u标头设置中的一些参数:

Request:
Access-Control-Request-Headers  accept-language, origin, accept-encoding

Response:
Access-Control-Allow-Headers    x-requested-with, content-type, accept, origin, authorization, x-csrftoken
尝试将接受语言和接受编码添加到settings.py中的标题中

CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken',
'accept-encoding',
'accept-language'

您似乎遗漏了CORS\u ALLOW\u标题设置中的一些参数:

Request:
Access-Control-Request-Headers  accept-language, origin, accept-encoding

Response:
Access-Control-Allow-Headers    x-requested-with, content-type, accept, origin, authorization, x-csrftoken
尝试将接受语言和接受编码添加到settings.py中的标题中

CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken',
'accept-encoding',
'accept-language'