Мне нужно отправить данные на сервер (используя сообщение с формой) и получить статус возврата, чтобы я мог вернуть разрешение или отклонить. Я не могу использовать ajax, чтобы сделать запрос ни XMLHttpRequest. Я хотел бы знать, как я могу отправить форму и вернуть обещание (например, @SomeKittens answer «конструктор обещаний»). custom.js:Статус запроса Http
var myfunction =
{
submitForm: function()
{
// Create form
var form = document.createElement('form');
form.setAttribute('action', 'server.php');
form.setAttribute('method', 'POST');
var input1 = document.createElement('input');
input1.setAttribute('type', 'hidden');
input1.setAttribute('name', 'params');
input1.setAttribute('id', 'params');
input1.setAttribute('value', 'myvalue');
form.appendChild(input1);
// Create iframe and append form to it
var $frame = $('<iframe style="width:500px;height:400px;display:none;">');
$('body').html($frame);
setTimeout(function(){
var doc = $frame[0].contentWindow.document;
var $body = $('body',doc);
$body.html(form);
// submit form
$(form).submit();}, 1);
}
}
index.html:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="custom.js"></script>
</head>
<body>
<script>
myfunction.submitForm().done(function() {
alert('It works');
}).fail(function() {
alert('Failed');});
</script>
</body>
</html>
Благодаря
'Я не могу использовать ajax, чтобы сделать запрос ни XMLHttpRequest.' - во-первых, если вы не можете использовать AjAX, то, конечно, вы не можете использовать xhr, так как xhr - это то, как начинать ajax! и если вы не можете использовать ajax, тогда вы в основном останетесь с использованием стандартного механизма отправки формы ... что приводит к загрузке новой страницы ... так что обещания полностью исключаются. –
@Jaromanda, I знаю (я видел в этом ответе: http://stackoverflow.com/questions/8039402/where-is-jquery-ajax-defined-in-the-jquery-source-code). Я должен использовать обещание по возвратным данным (сервер будет возвращать данные) и показывать «он работает» или «он не работает» на основе состояния – dramans
Не знаете, как любой ответ в этом вопросе поможет вам не использовать «AJAX или XHR» - потому что этот вопрос и ответ - все о jQuery.ajax ..., который является AJAX, который использует XMLHttpRequest - которые специально не «разрешены» для использования в вашем вопросе –