Я представляю форму, используя $('#myForm').submit
мой сервис для отдыха принимает контент-тип application/x-www-form-urlencoded
, но при использовании submit() Я не вижу запрос на вкладке XHR в инструментах разработчика браузера, а параметры формы doesn 't добраться до службы Rest, я мог бы использовать пост AJAX и указать тип контента, но служба Rest создает поток октетов, другими словами, ответ содержит загружаемый файл csv/pdf, что может быть решением для отправки формы правильно?JQuery submit form параметры пустые
1
A
ответ
1
Почему вы не используете $ .ajax() с типом: «post»?. Вы можете установить заголовок легко там
// Request with custom header
$.ajax({
url: 'foo/bar',
type: 'post',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: {}, // object of your data
success: function(response){
alert(response)
}
});
Если ваш ответ апите в потоке октетов или загружаемый файл, то вы должны создать виртуальную форму и отправить его через JQuery, потому что через AJAX, невозможно загрузить файл .. При файл загружает содержимое текущей страницы, останется той же формой события.
function autoGenerateAndSubmitForm(method, url, post_data) {
var element = document.getElementById("virtual_form");
if(element != null)
{
element.parentNode.removeChild(element);
}
var form = document.createElement("form");
form.setAttribute("id", "virtual_form");
form.setAttribute("style", "display:none;");
//form.setAttribute("target", "_blank"); // remove comment if you want to open it in new tab
form.method = method;
form.action = url;
for(i in post_data)
{
var element=document.createElement("input");
element.value=post_data[i];
element.name=i;
form.appendChild(element);
}
document.body.appendChild(form);
form.submit();
form.parentNode.removeChild(form);
}
Вызова ниже функции с аргументами поперли
autoGenerateAndSubmitForm('POST','your_url',{your_post_data_object:"Here"});
0
После прочтения измененного вопроса, как правило, если параметры являются пустыми в API это может быть вызвано следующими причинами.
- форма не является надлежащим образом Serialized
- Тип содержимого указано не то, что ваш API принимает
- При использовании Ajax убедитесь, что форма не определяет каких-либо действий и методы еще там могут быть проблемы ,
- Модель, которую ожидает API, не соответствует тому, что отправила форма
- При использовании Ajax смените кнопку «кнопка» вместо «отправить».
Да с сообщением ajax параметры достигают службы останова, но мой сервис обслуживания возвращает поток октетов, поэтому возникает ошибка ajax, потому что он не может обрабатывать этот тип типа – Donatas
, можете ли вы опубликовать ответ от API или ответить он загружен файл? –
Да, это скачанный файл, точнее это csv/pdf. – Donatas