2014-12-09 6 views
2

HTTP Post를 사용하여 액세스해야하는 외부 웹 페이지가 있고 iframe에 포함되어 있습니다. 웹 페이지에는 아래 나열된 페이지에 액세스하는 예제 세트가 있지만 Windows Form 솔루션을 사용합니다. 대신 ASP.NET MVC를 사용하고 있습니다.ASP.NET MVC를 사용하여 iframe에 웹 페이지를로드하려면 어떻게해야합니까?

이 WebBrowser 중심 솔루션을 외부 사이트에 성공적으로 게시하고 결과를 iframe에로드 할 수있는 방법으로 변환하려면 어떻게해야합니까?

private WebBrowser wb_inline = null; 

private void Submit_Click(object sender, EventArgs e) 
{ 
    string url = "http://www.example.com"; 
    string setupParameters = "account_token=abc123"; 

    ServicePointManager.ServerCertificateValidationCallback = 
     (s, cert, chain, ssl) => true; 
    ASCIIEncoding encoding = new ASCIIEncoding(); 
    var postData = setupParameters; 

    if (null == wb_inline) 
    { 
     wb_inline = new WebBrowser(this); 
     wb_inline.Location = new System.Drawing.Point(100, 277); 
     wb_inline.Size = new System.Drawing.Size(675, 650); 
    } 
    Controls.Add(wb_inline); 
    wb_inline.Visible = true; 
    string AdditionalHeaders = "Content-Type: application/json"; 
    byte[] data = encoding.GetBytes(postData); 
    wb_inline.Navigate(payProsUrl, "", data, AdditionalHeaders); 
} 

HttpWebResponse 클래스 (또는 다른 제어)와 같은 무언가를 할 수있는 방법이 있나요, 그리고 iframe에이 포함되어 있습니까? 나는 이것을 적응하려고 노력했지만 아직 성공하지는 못했다. w3schools 따르면

+1

JavaScript를 사용하여 브라우저에서 확인하지 않으시겠습니까? 이 경우 iframe을 사용할 필요조차 없습니다. – Floremin

+0

@Floremin : 궁극적으로 Vsevolod Goloviznin이 내가 묻는 질문에 대한 답을 주었지만 궁극적으로 그와 같은 일을 마쳤습니다. C# (if-cross-domain scripting) 내에서 iframe으로로드되는 페이지의 몇 가지 문제는 JavaScript 대신 iframe에 직접 웹 페이지를로드한다는 것을 의미합니다. – Brisbe42

답변

4

: 상기

An inline frame is used to embed another document within the current HTML document.

, iframe 주어진 URL을 통해 페이지의 콘텐츠를로드하고 상호 작용을 사용자에게 제공하는데 사용된다. 그 후 사용자는로드 된 페이지 (링크를 클릭하거나 양식을 게시 할 수 있음)로 수행하는 작업을 거의 제어 할 수 없습니다. iframe에 대한 HTTP 요청은 다른 페이지를 표시하기위한 "창"이므로 복잡한 시나리오를 지원하지 않으므로 보낼 수 없습니다.

한 가지 더 고려해야 할 것은로드중인 웹 페이지가 iframe에 삽입되지 않도록 보호 할 수 있다는 것입니다.

실제로 원하는 것을 얻을 수있는 몇 가지 옵션이 있습니다. iframe를 사용하여 순수한 서버 측 솔루션의 경우 다음을 수행해야합니다

1.Create 당신이 필요로하는 URL로 HTTP POST 요청을하고 프레젠테이션 결과를 가져옵니다 동작 방법에있어서,

public ActionResult PostAndShow() 
{ 
    //do the posting 
    string result = requestStream.ReadToEnd(); //you can have similar code to fetch the server response 
    return Content(result); 
} 

2. 웹 페이지에 PostAndShow을 가리키는 iframe을 만들고 타사 서버에 대한 HTTP POST 요청의 결과를 표시합니다.

<iframe src="@Url.Action("PostAndShow", "My")" width="400" height="300"></iframe> 
관련 문제