2015-01-30 2 views
0

jquery를 사용하여 양식을 제출하려고하는데 콘솔에서 오류가 발생합니다.다른 사이트의 jquery를 사용하여 양식 제출

여기
post('http://ws1.osfi-bsif.gc.ca/WebApps/FINDAT/DTIBanks.aspx?T=0&LANG=E', {DTIWebPartManager$gwpDTIBankControl1$DTIBankControl1$institutionTypeCriteria$institutionsDropDownList: 'Z005',DTIWebPartManager$gwpDTIBankControl1$DTIBankControl1$dtiReportCriteria$monthlyDropDownList:'DTI-1',DTIWebPartManager$gwpDTIBankControl1$DTIBankControl1$dtiReportCriteria$monthlyDatesDropDownList:'11 - 2014'}); 


function post(path, params, method) { 
method = method || "post"; // Set method to post by default if not specified. 

// The rest of this code assumes you are not using a library. 
// It can be made less wordy if you use one. 
var form = document.createElement("form"); 
form.setAttribute("method", method); 
form.setAttribute("action", path); 

for(var key in params) { 
    if(params.hasOwnProperty(key)) { 
     var hiddenField = document.createElement("input"); 
     hiddenField.setAttribute("type", "hidden"); 
     hiddenField.setAttribute("name", key); 
     hiddenField.setAttribute("value", params[key]); 

     form.appendChild(hiddenField); 
    } 
} 

document.body.appendChild(form); 
form.submit(); 
} 

JSFiddle을하고있다 : - - :

http://jsfiddle.net/kokmut5v/1/ 
+0

이 (아마도 때문에 [동일 출처 정책 제한]의의 https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) – Vadim

+0

당신이 옳을 수도 있습니다.하지만 다른 도메인의 모든 스크립트로이 양식의 결과를 얻는 방법은 무엇입니까? –

답변

0

문제는 참으로 형태가 다른로드되기 때문에 동일 출처 정책 여기

Uncaught SecurityError: Blocked a frame with origin "http://ws1.osfi-bsif.gc.ca" from accessing a frame with origin "http://jsfiddle.net". Protocols, domains, and ports must match 

내 코드입니다 도메인은 상위 창의 도메인과 비교됩니다.
iframe에 양식을 넣고 iframe에 sandbox="allow-same-origin allow-forms"을 추가해야합니다. 은 iframe과 샌드 박스에 대한 자세한 내용은
, 당신은 모양을 가질 수 herehere

관련 문제