$('#myForm').submit
을 사용하여 양식을 제출하고 있습니다. 내 rest service가 application/x-www-form-urlencoded
의 콘텐츠 유형을 허용하지만 submit()을 사용하면 브라우저 개발자 도구의 XHR 탭에서 요청을 볼 수없고 양식 매개 변수는 표시되지 않습니다. Rest 서비스에 도달하면 AJAX 게시물을 사용하고 content-type을 지정할 수 있지만 rest service는 옥텟 스트림을 생성합니다. 즉, 응답에 다운로드 할 수있는 파일 csv/pdf가 들어 있습니다. 그러면 양식을 올바르게 제출할 수있는 솔루션이 될 수 있습니까?JQuery 제출 양식 매개 변수가 비어 있습니다.
1
A
답변
1
$ .ajax()를 "post"유형으로 사용하지 않는 이유는 무엇입니까? 당신의 API 응답은 옥텟 스트림 또는 가상 양식을 작성하여 jQuery를 통해 게시해야 다음 다운로드 할 수있는 파일에있는 경우 AJAX를 통해 파일을 다운로드 할 수 없기 때문에 당신이 쉽게이
// 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)
}
});
헤더를 설정할 수 있습니다 .. 때 파일은 현재 페이지의 다운로드 내용과 동일하게 유지됩니다. 매개 변수가이 다음에 의해 야기 될 수있는 API에서 비어있는 경우 일반적으로 수정 된 질문을 읽고 나면 당신의 poper 인수
autoGenerateAndSubmitForm('POST','your_url',{your_post_data_object:"Here"});
0
와 기능 아래
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);
}
전화.
- 양식은 제대로 직렬화하지입니다
- 지정 콘텐츠 형식은 양식이 어떤 작업을 지정하지 않도록 및 방법 다른 문제가있을 수 있습니다 아약스 사용하는 경우 귀하의 API는
- 접수되는 것이 아니다 .
- API가 예상하는 모델이 양식이 제출 한 것과 일치하지 않습니다.
- Ajax를 사용할 때 버튼 유형을 "제출"대신 "단추"로 변경하십시오.
관련 문제
- 1. 양식 제출 후 $ _POST가 비어 있습니다.
- 2. 플래시의 WCF 서비스 매개 변수가 비어 있습니다.
- 3. Zend_Rest_Controller에서 POST 매개 변수가 비어 있습니다.
- 4. URL 다시 쓰기 - 매개 변수가 비어 있습니다.
- 5. 전역 변수가 비어 있습니다.
- 6. $ _SESSION 변수가 비어 있습니다.
- 7. 레일스 제출 후 POST 매개 변수가 비어 있습니까?
- 8. 왜 AngularJS 양식 게시물에 한 개의 매개 변수가 비어 있습니까?
- 9. Android 용 Cordova FileTransfer 플러그인 매개 변수가 비어 있습니다.
- 10. jQuery 양식 제출 후 중복 매개 변수
- 11. jQuery Mobile에서 AJAX 양식 제출
- 12. 변수가 채워지지 않고 비어 있습니다.
- 13. PHP 변수가 fwrite에서만 비어 있습니다.
- 14. PHP에서 $ _POST 변수가 비어 있습니다.
- 15. 중첩 된 양식 매개 변수가 비어 있습니까? 문제
- 16. URL을 다시 쓸 때 쿼리 매개 변수가 비어 있습니다.
- 17. Android에서 어댑터 인증 요청을 제출할 때 매개 변수가 비어 있습니다.
- 18. @ Ajax.BeginForm 및 @ Ajax.ActionLink를 사용하는 동안 FormCollection 매개 변수가 비어 있습니다.
- 19. JSON의 WCF REST POST : 매개 변수가 비어 있습니다.
- 20. GET 매개 변수가 포함 된 링크에 POST 양식 제출
- 21. jQuery 여러 양식 제출
- 22. Jquery this.src가 비어 있습니다.
- 23. jQuery, 단추가있는 양식 제출
- 24. jquery 여러 양식 제출
- 25. jQuery 양식 제출 문제
- 26. 고급 JQuery 양식 제출
- 27. 양식 제출 금지/jQuery
- 28. jQuery 양식 제출
- 29. jQuery 양식 제출 실패
- 30. jquery 양식 서블릿 제출
예 아약스 게시 매개 변수는 나머지 서비스에 도달하지만 내 휴식 서비스는 옥텟 스트림을 반환하므로이 유형의 종류를 처리 할 수 없기 때문에 아약스 오류가 throw됩니다. – Donatas
API 또는 응답에서 응답을 게시 할 수 있습니까? 파일이 다운로드 되었습니까? –
예, 파일이 다운로드되었으므로 CSV/pdf입니다. – Donatas