POST 데이터로 Firefox에 책갈피를 저장하는 방법은 무엇입니까?


23

GET을 사용하여 액세스 할 수없는 페이지를 Firefox 책갈피로 저장하고 싶습니다. 페이지를 검색하는 유일한 방법은 일부 POST 데이터를 보내는 것입니다.

예를 들어, Chronopost 소포 추적 페이지 를 책갈피로 지정 하여 소포 번호를 입력 할 때 POST 만 허용합니다.

누구든지 Firefox 확장 기능이나 다른 기술을 알고 있습니까?


괴짜 참고 사항 : GET 요청은 데이터를 변경하지 않아야하므로 책갈피를 지정하고 원하는만큼 자주 호출 할 수 있습니다. POST 요청은 서버의 상태를 변경할 수 있으므로 쉽게 책갈피에 추가되지 않습니다. POST 링크에서 책갈피를 여러 번 호출하면 Amazon에서 추가 항목을 구매하는 등의 문제가 발생할 수 있는지 생각하십시오.
Rich Homolka

답변:


20

북마크를 사용하십시오. 예를 들어 http://userjs.up.seesaa.net/js/bookmarklet.html 의 도구를 사용 하여 다음 코드를 사용하여 책갈피를 작성할 수 있습니다.

(function(){
  var post_to_url = function(path, params, method) {
    var openWindow = window.open(path);
    method = method || "post"; 
    var form = openWindow.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    openWindow.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://www.chronopost.fr/transport-express/livraison-colis/engineName/search/accueil/suivi', 
  {search:'test'});
})()

그런 다음 생성 된 북마크릿 링크를 즐겨 찾는 브라우저에서 북마크로 사용하십시오. 클릭하면 창이 열리고 매개 변수가 포함 된 양식을 만든 다음 {search:'test'}해당 양식을 제출합니다.

URL과 매개 변수를 변경하려면 마지막 호출을 조정하십시오 post_to_url.

이 전략은 책갈피를 한 번 작성하고 여러 번 사용해야하는 경우 유용 할 수 있습니다. 그러나 정기적으로 새 책갈피를 작성해야하는 경우 새 책갈피를 작성하기가 쉽지 않습니다.


{search : 'test'}에서 '주변 검색이 필요하지 않습니까?
Anton Daneyko

1
@mezhaka : 아니요. 실제로 JSON 문자열이 아닌 자바 스크립트로 평가되므로 속성 이름에 공백이나 특수 문자가 포함되어 있지 않으면 속성 이름 주위의 따옴표는 선택 사항입니다.
StriplingWarrior

1
답장을 보내 주셔서 감사합니다. 키 : 값을 URL로 인용해야합니까? 키와 값에 공백이나 ASCII가 아닌 문자가있는 경우처럼 ''로 묶을만큼 충분합니까? 아니면 ö와 같은 기호를 인용해야합니까?
Anton Daneyko

@mezhaka : 다음 규칙이 있습니다 : stackoverflow.com/a/9568622/120955 .
StriplingWarrior

4

@StriplingWarrior의 답변을 사용하여 동일한 창에서 책갈피를 열어 일반 책갈피와 동일한 동작을 갖도록 스크립트를 약간 변경했습니다.

(function(){
  var post_to_url = function(path, params, method) {
    method = method || "post"; 
    var form = window.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    window.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://192.168.0.1/goform/login', 
  {loginPassword:'password',loginUsername:'admin'});
})()

http://userjs.up.seesaa.net/js/bookmarklet.html 의 도구를 사용하면 코드를 복사하여 붙여 넣고 URL과 매개 변수를 변경하고 생성 된 bookmmarklet을 책갈피에 추가 할 수 있습니다. 예를 들어 라우터 제어판에 액세스하는 데 매우 유용합니다.


4

이 질문에 대한 답변 덕분에 Firefox 용이 멋진 부가 기능을 발견했습니다. Bookmark POST . 좋은 문서가 없지만 시작해야합니다.

이 책갈피를 사용하면 책갈피가 지정된 POST 요청에 대한 쉬운 4 단계를 수행 할 수 있습니다 (자바 스크립트 필요 없음)

  1. 북마크하려는 양식이있는 페이지를 열고 "일반적인"방식으로 양식을 작성하십시오. 아직 제출하지 마십시오.
  2. 웹 개발자 도구-> 네트워크 분석을여십시오.
  3. 양식을 제출하십시오. 제출은 네트워크 분석에 나타납니다. "편집 후 다시 전송"을 선택하고 "요청-본문"을 복사 할 수 있습니다.
  4. 양식 페이지에 책갈피를 작성 POSTDATA={YOUR_REQUEST_BODY_HERE}하고 책갈피 설명으로 문자열 을 추가하십시오 .

나에게 이것은 자바 스크립트를 사용하는 것보다 쉽습니다.


우수 대답은하지만 Waterfox 56.2에서 작동하지 않았다
Euri Pinhollow

3

가장 간단한 접근법 :

채워진 양식 및 자동 업로드가 포함 된 책갈피

javascript:'<html><body onload="document.forms[0].submit()"><form action="http://www.example.com" method="POST"><input name="whatever" value="whatever" type="hidden"></form></body></html>'

단점 : Chromium은 현재 웹 페이지 URL을 HTTP 참조 자로 보냅니다. (Firefox와 IE는 그렇지 않습니다.)

추천인이 중요한 이유 개인 정보 보호 문제를 고려하지 않고 일부 웹 사이트는 POST에서 참조자를 확인하여 숨겨진 iframe 양식 게시물로 작성된 악의적 인 요청으로부터 자신을 보호합니다.

대체 접근법 :

여기설명되어 있지만 약간 더 읽기 쉽지만 어딘가에 HTML 파일이 필요합니다. 사용법은 다음과 같습니다.

file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service

로컬로 저장된 파일을 통해 작업하는 경우 참조가 전송 되지 않습니다 . 크롬에서도.
파일이 원격 웹 사이트에 배치되면 참조자가 전송되고 웹 사이트 호스트 및 원래 쿼리 문자열이 포함됩니다.


2

frmget 북마크의 HTTP 메소드에 무관심 많은 사이트에 대한 작품 : 양식을 제출, 북마크를 적용 결과 페이지를 즐겨 찾기에 추가.

POST가 필요한 사이트의 경우이 확장 기능이 있으며 이는 사용자 친화적이지 않습니다. frmget과 결합하여 frmget을 적용하고, 양식을 제출하고, 페이지를 책갈피에 추가하고, GET 매개 변수를 접 두부로 설명 필드에 복사하십시오 POSTDATA=.


1

HAR 파일을 매개 변수로 허용하기 위해 @StriplingWarrior가 제공하는 스크립트를 약간 수정했습니다. HAR 파일은 Chrome 개발자 도구 (Ctrl + Shift + J)에서 저장할 수 있습니다.

먼저 양식 데이터가 이미 게시 된 페이지를 연 다음 네트워크 탭에서 첫 번째 문서를 마우스 오른쪽 단추로 클릭하고 "항목을 HAR로 복사"를 선택하십시오. 그런 다음 아래 스크립트에 내용을 붙여 넣으십시오.

<html><body><script>
function dopost() {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", har["request"]["url"]);
var params = har["request"]["postData"]["params"];
for(var e in params) {
    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", params[e]["name"]);
    hiddenField.setAttribute("value", params[e]["value"]);
    form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
}
window.onload=dopost;

var har=
//-----PASTE HERE------

</script>
</body></html>

이것을 html 파일로 저장하면 게시 된 양식을 열어야합니다. 사이트에서 viewstate를 사용하거나 참조자를 확인하면 작동하지 않습니다.



0

내가 포스트에 대해 이해 한 바에 따르면, 그 데이터를 직접 기록하고 다시 보낼 수있는 방법이 없습니다.

Firefox보다 기본적으로 양식을 채우는 추가 기능을 얻는 것이 좋습니다.

Chrome에는 실제로 매우 강력한 양식 인식 및 작성 기능이 있지만 동일한 기능을하는 firefox addon이 있다고 확신합니다.

이 기능을 사용해보십시오. 유망한 것으로 보입니다. Form Saver Firefox Add-on


그러나 슬프게도 Chrome은 일반 HTTP AUTH 페이지에 비밀번호를 저장하지 않습니다.
qroberts

오늘날 나사로는 양식 보호기보다 낫습니다.
Tobu

0

Firefox Addon을 사용 하여 POST 작업을 책갈피에 추가합니다.


0

사용자의 북마크를 기반으로 :

이것은 Firefox 및 검색 창에 대한 키워드가있는 UPS에서 작동하는 것 같습니다 (예 : Xupz가 %s북마크릿 내부의 자리 표시 자로 들어가는 "ups XYZ" ) :

javascript:'
<html><body%20onload="document.forms[0].submit()">
  <form%20action="https://wwwapps.ups.com/WebTracking/track"%20method="POST">
  <input%20name="trackNums"%20value="%s"%20type="hidden">
  <input%20name="track.x"%20value="anything"%20type="hidden">
  </form>
</body></html>'

(이것은 한 줄이어야 함)

참조 :

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.