Невозможно выполнить эту работу. Если внешний домен, к которому вы пытаетесь получить доступ, поддерживает такую процедуру, как CORS , JSONP или postMessage .
несколько исключений (как всегда):
Если вы имеете дело с WebApp, например, вы можете сообщить своим пользователям, что они должны предоставить доступ к cross-domain-calls
.
В Gecko / Firefox, например, вы можете вызвать
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead')
, что позволяет браузеру получать доступ к иностранным доменам через ajax/iframes
. В этом случае пользователь должен установить
signed.applets.codebase_principal_support
на true
в разделе about:config
, чтобы сделать эту работу.
В Internet Explorers
этого мира есть (f10), который должен быть установлен на enable
.
Chrome
разрешает междоменные вызовы с аргументом командной строки:
chrome.exe --disable-web-security
Вам может потребоваться добавить e.preventDefault();
var $myForm = $('#my-form');
$('#button-fake').on('click', function(e) {
e.preventDefault();
console.log("FAKE CLICKED");
if ($myForm[0].checkValidity()) {
console.log("FORM VALID");
$('#button-real').click();
console.log("FORM SUBMITTED");
}
});
$('#button-real').on('click', function(e) {
console.log('button-real clicked')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id='my-form'>
<input type='text' required>
<button type='submit' id='button-fake'>Submit</button>
<button type='button' id='button-real'>Real</button>
</form>
Кнопка запускает отправку формы. Форма отправки перезагрузит страницу. Чтобы предотвратить это, вызовите protectDefault ().
$( 'document' ).ready( function() {
var $myForm = $('#my-form');
$('#button-fake').on('click', function(e){
e.preventDefault(); // <- This
console.log("FAKE CLICKED");
if ($myForm[0].checkValidity()){
console.log("FORM VALID");
$('#button-real').click();
console.log("FORM SUBMITTED");
}
});
});