2014-06-14 5 views
0

페이지를 요청하고 창을 열지 않고 버튼을 클릭하면 게시물이 작동 할 수 있다고 생각합니다. 내가 제대로 글을 이해 해요 경우JQuery에서 포스트를 사용하여 페이지의 버튼을 클릭 할 수 있습니까?

<!DOCTYPE html> 
<html> 
    <head> 
     <title>test</title> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"</script> 
     <script> 
      $(document).ready(function() { 
       $.post(
        "http://m.roblox.com/Catalog/VerifyPurchase?assetid=161075864&type=tickets&expectedPrice=1", 
        $("ui-block-a").submit(); 
       ); 
       alert("work"); 
      }); 
     </script> 
</head> 
<body> 
</body> 
</html> 

, 첫 번째 인수가에서 요청하고 두 번째 인수는 데이터를 보낼 수있는 하나의 URL은 다음과 같습니다 여기 내 코드입니다. 링크를 클릭하면 페이지에서 '구매'버튼을 클릭하라는 요청을 보내려고합니다. 누구든지 도와 줄 수 있습니까?

+0

이는 게시물이하는 일이 아닙니다. 서버로 데이터를 보내지 만 서버가 처리 할 데이터를 선택합니다. 원하는 것을하기 위해 서버가 지원해야합니다. – dpk2442

+0

데이터를 수락한다고 가정하고 버튼을 클릭하는 데이터를 보낼 수 있습니까? – nPwn

+0

제출 단추이기 때문에 버튼이 제출하는 양식에 항상 요청할 수 있습니다. 원하는대로 시뮬레이션 할 수 있습니다. 원하는 것을 정확하게하는 것은 실제로 가능하지 않습니다. 그렇다면 보안 문제가 심각하게 생길 수 있습니다. – dpk2442

답변

1

게시물 요청은 지정된 URL로 데이터를 보냅니다. 그 시점의 데이터로 서버가 수행하는 작업은 전적으로 서버에 달려 있습니다. 버튼을 시뮬레이션하려는 웹 페이지가 해당 동작을 허용하는 것은 거의 없습니다. 이것이 일반적으로 가능하다면 사용자에게 매우 큰 보안 취약점을 열어 놓을 수 있습니다. 예를 들어 사이트는 사용자가 알지 못하는 사이 PayPal을 통해 돈을 기부하는 것을 시뮬레이션 할 수 있습니다.

이 특별한 경우 단추가 양식을 제출하는 것으로 보입니다. 이 경우 양식을 제출하는 페이지로 직접 요청을 보낼 수 있으며 양식을 제출하는 것을 시뮬레이션합니다. 그러나 양식 제출은 일반적으로 이와 같은 내용으로부터 보호됩니다. 다시 말해 사용자를 대신하여 행동 할 수 있기 때문입니다.

기본적으로 이와 같은 최선의 방법은 사용자에게 필요한 것을 설명하는 지침을 사용자에게 제공 한 다음 해당 페이지를 여는 것입니다.

0

CORS과 같은 다른 문제가 없다고 가정하면 수행하려는 것처럼 게시 할 수 있지만 다음은 유효하지 않습니다.

$.post("http://m.roblox.com/Catalog/VerifyPurchase?assetid=161075864&type=tickets&expectedPrice=1", $("ui-block-a").submit(); 
  1. 당신은 요청 본문이 아닌 URL 문자열로 서버에 전송되는 데이터를 필요로하는 POST을 다하고 있습니다.

  2. 게시하려는 페이지에 $("ui-block-a").submit();data을 반환하지 않는 한 페이지가 아닌 서버에 실제로 게시됩니다.이 경우에는 필요하지 않습니다. 당신이 있었다면 그 post

    $.post("http://m.roblox.com/Catalog/VerifyPurchase", { assetid: "161075864", type: "2pticketsm", expectedPrice: "1" }); 
    

    successful 당신이 개발자/관리자 콘솔에서 allow-orgins 오류를 볼 수에 찾고있는

다음

는 가까이 될 것입니다.

0

$.post()은 축약 된 형태가 $.ajax()이고 POST이 미리 선택되어 있습니다. $.get() (GET가 유형으로 사전 선택됨) 및 $.load() (반환 된 데이터가 지정된 요소에 즉시 주입 됨)도 있습니다. 그러나 $.ajax()은 그들 모두의 아빠입니다.

AJAX는 사용자가있는 페이지를 떠나거나 새로 고치지 않고 서버의 프로세서 파일과 데이터를 교환하는 방법입니다. 즉, AJAX (또는 $. post)를 사용하면 서버의 처리 페이지 (예 : my_processor.php)로 정보를 보낼 수 있습니다. 처리 페이지가 데이터로 무엇인가 할 수 있습니다 (예 : 데이터를 사용하여 데이터베이스)를 생성 한 다음 원본 페이지로 돌아온 데이터를 에코 아웃합니다. 수신 된 데이터는 원본 페이지의 DIV 또는 그와 비슷한 형태로 주입 될 수 있습니다.

ajax 루틴은 일반적으로 원래 페이지의 일부 이벤트 (사용자가 단추를 누르거나 드롭 다운에서 값을 선택하는 등)에 의해 트리거됩니다. Javascript (또는 jQuery) 코드는 이벤트를 감지하고 AJAX 코드는 일반적으로 javascript 이벤트에서 처리됩니다.

Here are some simple examples of what has been described.

관련 문제