Ruby on Rails 애플리케이션에서 POSTMAN REST 클라이언트를 통해 이미지를 Base64 형식 으로 업로드하려고했습니다 . 이미지를 게시하면 406 Not Acceptable Response가 표시 됩니다. 데이터베이스를 확인했을 때 이미지가 있었고 성공적으로 저장되었습니다.
이 오류의 원인은 무엇입니까? 헤더에 지정해야 할 것이 있습니까?
내 요청 :
URL — http://localhost:3000/exercises.json
헤더:
Content-Type - application/json
원시 데이터 :
{
"exercise": {
"subbodypart_ids": [
"1",
"2"
],
"name": "Exercise14"
},
"image_file_name": "Pressurebar Above.jpg",
"image":"******base64 Format*******"
}
답변
작업이 실패하지 않았습니다.
백엔드 서비스가 리턴하는 응답 유형이 클라이언트 요청의 HTTP 승인 헤더에 제공되지 않는다고 말합니다.
참조 : http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
- 서비스에서 반환 한 응답 (콘텐츠 유형)을 찾으십시오.
- 요청 수락 헤더에이 (콘텐츠 유형)을 제공하십시오.
http://en.wikipedia.org/wiki/HTTP_status_code- > 406
답변
406 Not Acceptable 요청에 의해 식별 된 리소스는 요청에서 전송 된 accept 헤더에 따라 허용 할 수없는 컨텐트 특성을 가진 응답 엔터티 만 생성 할 수 있습니다.
406은 서버가 요청에 지정된 수락 헤더로 응답 할 수 없을 때 발생합니다. 귀하의 경우 응답을위한 application / json이 서버에 적합하지 않을 수 있습니다.
답변
Ruby on Rails를 백엔드로 사용한다고 언급했습니다. 관련 방법에 대한 코드를 게시하지 않았지만 다음과 같이 보입니다.
def create
post = Post.create params[:post]
respond_to do |format|
format.json { render :json => post }
end
end
다음으로 변경하십시오.
def create
post = Post.create params[:post])
render :json => post
end
그리고 그것은 당신의 문제를 해결할 것입니다. 그것은 나를 위해 일했다 🙂
답변
유효하지 않은 쿠키가 브라우저에 저장되거나 참조 될 때 (예 : Dev 모드에서 Rails 서버를 로컬로 실행할 때) 406 응답을받을 수도 있습니다.
동일한 포트에서 두 개의 다른 프로젝트를 실행 한 경우 브라우저는 다른 로컬 호스트 세션에서 쿠키를 참조 할 수 있습니다.
이것은 나에게 일어났다. .. 나를 잠시 동안 위로 ipped 다. 브라우저> 개발자 모드> 네트워크를 보면 그것을 보여줍니다.
답변
“때로는”이것은 서버에 내부 오류가 있고 오류 메시지 (예 : JSON 페이로드가있는 500)로 응답하려고했지만 요청 헤더가 JSON을 수락한다고 말하지 않았기 때문에 대신 406을 반환합니다. 그림을 이동. (이 경우 : spring boot webapp).
이 경우 작업이 실패했습니다. 그러나 실패 메시지는 다른 사람에 의해 가려졌습니다.
답변
제 경우에는 다음을 추가했습니다.
Content-Type: application/x-www-form-urlencoded
내 문제를 완전히 해결했습니다.
답변
const request = require('request');
const headers = {
'Accept': '*/*',
'User-Agent': 'request',
};
const options = {
url: "https://example.com/users/6",
headers: headers
};
request.get(options, (error, response, body) => {
console.log(response.body);
});
