은 넣어,삭제를 머리 등을 사용할 수 있는 방법에 대부분의 웹 브라우저는?

StackOverflow https://stackoverflow.com/questions/165779

문제

나는 본 적이 몇 가지 질문이다 디버깅하는 방법에는 편안한 서비스, 는 언급:

불행하게도 동일한 브라우저를 허용하지 않고 나를 테스트하는 HTTP 넣을,삭제하고,어느 정도 심지어는 HTTP POST.

나는 또한 브라우저 지원을 얻을 게시,일부에서 다른 소스를 같:

그러나 몇 가지 간단 테스트 Firefox 에서는 발송 PUTDELETE 요청의 예상대로 작동하는-- XMLHttpRequest 성공적으로 완료되면,그 요청을 표시 서버 로그에서 오른쪽으로 방법입니다.은 거기에 몇 가지 측면이 나는 같은 크로스 브라우저 호환성 또는 비 분명 제한?

도움이 되었습니까?

해결책

아니요 HTML 5 사양 언급 :

메소드 및 양식 메드 컨텐츠 속성은 다음 키워드 및 상태와 함께 열거 된 속성입니다.

키워드 가져 오기, 상태에 매핑되는 GET는 HTTP get 메소드를 나타냅니다. GET 메소드는 데이터를 요청하고 검색해야하며 다른 영향을 미치지 않아야합니다.

키워드 게시하다, HTTP 사후 방법을 나타내는 상태 게시물에 매핑. Post Method는 서버가 처리 할 제출 된 양식의 데이터를 수락 할 것을 요청하며, 이는 항목이 데이터베이스에 추가 될 수 있으며, 새로운 웹 페이지 리소스 작성, 기존 페이지 업데이트 또는 언급 된 모든 결과를 초래할 수 있습니다. .

키워드 대화, 상태 대화 상자에 매핑되어 양식을 제출하는 것은 양식이 자체적으로 찾은 대화 상자를 닫기위한 것임을 나타냅니다.

이러한 속성의 잘못된 값 기본값은 GET 상태입니다.

IE HTML은 지원 만 지원합니다 가져 오기 그리고 게시하다 HTTP 요청 방법으로. 이에 대한 해결 방법은 서버에서 읽는 숨겨진 양식 필드를 사용하여 게시물을 통해 다른 메소드를 터널하고 그에 따라 디스패치 된 요청입니다.

하지만, 가져 오기, 게시하다, 놓다 그리고 삭제 ~이다 모든 주요 웹 브라우저 (예 : Firefox, Safari, Chrome, Opera)에서 XMLHTTPREQUEST (예 : AJAX 호출) 구현에 의해 지원됩니다.

다른 팁

HTML 형태 지원을 얻고 있다.(HTML5 한 지점에서 추가 넣어/삭제이지만,사람들은 삭제됩니다.)

XMLHttpRequest 지원의 모든 방법을 포함하여,치킨,하지만 어떤 메서드 이름이 일치에 대한 경우-대/소문자를 구분하지 않고(는 방법은 대소문자를 구분 당 HTTP)고 어떤 메서드 이름이 지원하지 않는 모두에서 보안을 위한 이유(예:에 연결).

브라우저는 천천히 수렴한 규칙에 의해 지정된 XMLHttpRequest 지만,다른 코멘트는 지적이 있는 여전히 약간의 차이가 있습니다.

XMLHttpRequest JavaScript 객체 모델의 표준 객체입니다.

Wikipedia에 따르면 XMLHttpRequest Internet Explorer 5에 ActiveX 객체로 처음 등장했지만 이후 표준으로 만들어졌으며 1.0, Apple Safari 1.2, Opera 7.60-P1 및 IE 7.0 이후 Mozilla 제품군의 JavaScript에 사용하기 위해 포함되었습니다.

그만큼 open() 방법 객체에서 HTTP 메소드를 인수로 사용하고 유효한 HTTP 메소드 (링크의 항목 번호 5 참조)로 지정됩니다. GET, POST, HEAD, PUT 그리고 DELETE, 처럼 RFC 2616에 의해 지정됩니다.

부수적으로 IE 7–8 다음 HTTP 방법 만 허용하십시오 : "get", "post", "head", "put", "delete", "move", "propfind", "proppatch", "mkcol", "copy" , "잠금", "잠금 해제"및 "옵션".

나는 그 의견이 브라우저 (즉 XMLHttpRequest. XMLHttpRequest 그냥 맞춤형 클라이언트 일뿐입니다 브라우저를 런타임으로 사용하는 JavaScript로 작성했습니다.

업데이트 : 명확히하기 위해, 나는 썼다 XMLHttpRequest; 나는 당신이 사용하는 코드를 작성했다는 것을 의미했습니다 XMLHttpRequest. 브라우저는 기본적으로 지원하지 않습니다 XMLHttpRequest. XMLHttpRequest 브라우저에서 호스팅 할 수있는 JavaScript 런타임에서 나옵니다. 코뿔소). 그렇기 때문에 사람들은 브라우저가 지원하지 않는다고 말합니다 PUT 그리고 DELETE- 실제로 JavaScript를 지원하기 때문에.

_method 숨겨진 현장 해결 방법

레일에 사용되며 모든 프레임 워크에 적응할 수 있습니다.

  • 숨겨진 것을 추가하십시오 _method 얻거나 게시하지 않는 모든 양식의 매개 변수 :

    <input type="hidden" name="_method" value="DELETE">
    

    이것은 HTML Creation Helper 방법 (EG Rails를 통해 프레임 워크에서 자동으로 수행 할 수 있습니다. form_tag)

  • 게시 할 실제 양식 방법을 수정하십시오 (<form method="post")

  • 프로세스 _method 서버에서 실제 게시물 대신 해당 메소드가 전송 된 것처럼 정확하게 수행합니다.

그것이 불가능한 이유에 대한 이론적 근거 / 역사 : https://softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-in-methods-in-html-forms

, put, 삭제, 헤드 등 HTTP 방법은 모든 최신 브라우저에서 사용할 수 있습니다.

준수합니다 xmlhttprequest 레벨 2 브라우저 ~ 해야 하다 이 방법을 지원합니다. 어떤 브라우저를 지원하는지 xmlhttprequest 레벨 2를 확인하려면 caniuse를 권장합니다.

http://caniuse.com/#feat=xhr2

Opera Mini만이 지원 ATM (Juli '15)이 부족하지만 Opera Mini에는 모든 것에 대한 지원이 부족합니다. :)

추가하기 만하면 -Affari 2 이상은 Put and Delete를 확실히 지원하지 않았습니다. 나는 인상 3을 얻었지만 더 이상 테스트 할 주변이 없습니다. Safari 4는 확실히 Put and Delete를 지원합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top