Michael Brown 님, 감사합니다.
테스트해 보았더니 브라우저에서는 문제가 없었지만, 프로그래밍 소프트웨어에서는 오류가 발생합니다. 이는 해당 프로토콜을 전송할 때 ASCII만 사용해야 한다는 규칙 때문이죠.
오류 발생 원인:
TypeError: Invalid character in header content [“Api-Username”]
로그를 확인해 주시고, 매칭을 위해 utf8 인코딩 또는 디코딩을 한 번 추가하는 것이 권장됩니다.
- 테스트 인터페이스
- 웹 주소
Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:system
테스트 결과:
OK
Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:风之旅人
{“status”:500,“error”:“Internal Server Error”}
Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:%E8%BF%90%E6%80%9D
요청한 리소스를 볼 권한이 없습니다. API 사용자 이름 또는 키가 유효하지 않습니다
오류 원인:
헤더에서 중국어를 사용하는 것은 유효하지 않으며, 서버로 전송하려면 encodeURI()로 인코딩해야 합니다. 또한 서버가 이를 인식하려면 decodeURI()로 디코딩해야 합니다.
판단 로직을 추가하는 것을 제안합니다. 찾지 못한 경우 decodeURI를 시도하여 사용자 이름을 매칭하도록 하세요.
