이것은 꽤 오래 동안 나를 괴롭 히고 있습니다. 장고에 api의 기본 세트를 설치했고 angularJS 기반의 프론트 엔드를 구축하고 있습니다. 그러나 몇 가지 이상한 이유로 다음 코드는 CORS 오류를 발생시킵니다.angularjs가 내 장고 기반 apis에 CORS 오류를주는 POST를하지 않습니다.
var req = {
method: 'POST',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
withCredentials: true,
param: data,
data: data
}
return $http(req).then(
function(response){
callbackSuccess(response);
},
function(response){
callbackError(response);
}
);
난 내가 게시 무엇을 : 옵션 요청이 포스트 둘째 없음을 할 경우에도 게시되어 두 가지를 발견했다. 나는 요청을 넣으려고. 포스 내용과 비어 있습니다.
Internal Server Error: /api/users/auth/
Traceback (most recent call last):
File "/home/ali/eb-virt/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/home/ali/eb-virt/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/ali/eb-virt/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/home/ali/eb-virt/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/ali/Projects/api.project.local/project/api/views.py", line 50, in loginUser
emailAddress = request.POST["emailAddress"]
File "/home/ali/eb-virt/local/lib/python2.7/site-packages/django/utils/datastructures.py", line 85, in __getitem__
raise MultiValueDictKeyError(repr(key))
MultiValueDictKeyError: "'emailAddress'"
[21/Nov/2016 07:56:59] "OPTIONS /api/users/auth/ HTTP/1.1" 500 81083
그리고 이것은 내 서버 코드입니다 : 나는 django-cors-headers를 설치하고 모든 코어에 지시하지만 여전히 작동하지를 따랐습니다
def loginUser(request):
emailAddress = ''
password = ''
emailAddress = request.POST["emailAddress"]
password = request.POST["password"]
data = auth.login(emailAddress, password)
return data
...
귀하의 서버 코드를 게시하십시오. 내부에서'OPTION' 메소드를 받아들입니다. ' – itzMEonTV
서버 코드를 추가했습니다. POST를 확인하고 있습니다. 어떻게 OPTION 메서드를 사용할 수 있습니까? 요청의 pp.pprint를 수행합니다. POST는 빈 dict 객체를 출력합니다. – Ali
수용 할 요청 (POST, GET ...)과 받아 들일 수있는 대상을 서버에 알려줘야합니다. 그것들은 당신이 설정해야하는 2 개의 헤더입니다. 그들을 세웠어? – trichetriche