>  기사  >  백엔드 개발  >  Python의 병 프레임워크에서 도메인 간 요청 오류 문제를 처리하는 방법에 대한 자세한 그래픽 및 텍스트 설명

Python의 병 프레임워크에서 도메인 간 요청 오류 문제를 처리하는 방법에 대한 자세한 그래픽 및 텍스트 설명

高洛峰
高洛峰원래의
2017-03-20 09:14:571624검색

이번 글은 python의 병프레임워크에서 크로스 도메인 요청 오류 보고 문제를 처리하는 방법을 주로 소개합니다. 필요한 친구는

파이썬을 사용하여 병 프레임워크를 개발할 때 프런트 엔드에서 도메인 간 액세스를 위해 ajax를 사용할 때

js 코드가 항상 성공 입력에 실패하지만 오류가 입력되고 상태가 반환됩니다. 🎜>은 200입니다. 브라우저에서 직접 URL에 액세스하는 것이 정상입니다. 브라우저에서 F12를 누르면 다음과 같은 오류 메시지가 나타납니다.

XMLHttpRequest can load http://192.168.0.118: 8081/get_mobile_number/?id=1. 요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다. 따라서 Origin 'null'은 액세스가 허용되지 않습니다.

검색 엔진을 통해 오류를 쿼리하면 찾은 답변이 거의 모두 도메인 간 문제라는 것을 알 수 있습니다. 외국 웹 사이트의 많은 솔루션은 기본 파일의 코드에 다음을 추가하기만 하면 됩니다. 이

@hook('after_request')
def enable_cors():
 response.headers['Access-Control-Allow-Origin'] = '*'
실제로 찾은 솔루션에 따라 추가한 후에도 여전히 오류가 발생했습니다. 브라우저의 http 헤더 출력을 보면 Access-Control-Allow-Origin:*이 표시되지 않았습니다. 아래와 같이 추가되었습니다.

DEBUG를 통해 병 소스 코드를 입력하여 확인하세요

테스트해봤습니다 이 문제는 python2 및 python3에 해당하는 병 프레임워크에 존재합니다. 이 문제에 대해


class HTTPResponse(Response, BottleException):
  def init(self, body='', status=None, headers=None, **more_headers):
    super(HTTPResponse, self).init(body, status, headers, **more_headers)
  def apply(self, response):
    response._status_code = self._status_code
    response._status_line = self._status_line
    if self._headers:
      if response._headers:
        response._headers.update(self._headers)
      else:
        response._headers = self._headers
    response._cookies = self._cookies
    response.body = self.body


로 변경한 것을 볼 수 있습니다. 코드를 다시 실행하면 ajax 코드가 정상이라는 것


위 내용은 Python의 병 프레임워크에서 도메인 간 요청 오류 문제를 처리하는 방법에 대한 자세한 그래픽 및 텍스트 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.