如何提交表格数据?

时间:2018-06-07 10:06:17

标签: javascript multipartform-data form-data

我使用FormData(),我需要保持常规表单的行为:

<form id="myForm" method="post", action="/pageToGo">
    stuff...
</form>

<script>
    var regularForm = document.getElementById('myForm')

    var myFormData = new FormData(regularForm)
    myFormData.append(stuff...)

    var request = new XMLHttpRequest()
    request.open('post', '/pageToGo')

    request.send(myFormData) // Do not change document.location.href
    regularForm.submit() // Do not include the happened stuff
</script>

我希望被重定向,就像我以常规形式提交一样。

我该怎么办?谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

不要使用FormData。

将隐藏的输入元素添加到表单中。然后调用其 #define MAX_LINE_LENGTH 500 #define MAX_LINES 1000 #include <string.h> #include <stdio.h> #include <stdlib.h> //void swapAscending(char **) int main(int argc, const char * argv[]) { char *names [MAX_LINE_LENGTH]; char tempNameHolder[500]; char *tempSortNameHolder; char *tempSortNameHolderNthA; char *tempSortNameHolderNthB; char delimiter[] = " "; char *strPtrA; //char *strPtrB; int writeIndex = 0; int sortIndex = 0; int elementCounter = 0; int compareReturnBSAsc = 0; int compareReturnBSDsc = 0; long convertedValue = 0; unsigned long stringLengthBSAsc = 0; unsigned long stringLengthBSDsc = 0; unsigned long currentStringLength = 0; //Convert argv[argc-1] to int convertedValue = strtol(argv[argc-1], NULL, 10); printf("Enter the name: "); while (fgets(tempNameHolder, MAX_LINE_LENGTH, stdin)) { currentStringLength = strlen(tempNameHolder)+1; names[writeIndex] = malloc(currentStringLength); strcpy(names[writeIndex], tempNameHolder); elementCounter++; printf("Enter the name: "); writeIndex++; }; //strPtrA = strtok(*(names), delimiter); strPtrA = strtok_r(*(names), delimiter, names); //strPtrB = strtok(*(names + sortIndex), delimiter); //Sort ASCENDING without argument if (argc == 1) { for (int currentIndexA = elementCounter; currentIndexA > 0; currentIndexA--) { for (int currentIndexB = 0; currentIndexB < currentIndexA -1; currentIndexB++) { compareReturnBSAsc = strcmp(*(names+currentIndexB), *(names+currentIndexB+1)); if (compareReturnBSAsc > 0) { tempSortNameHolder = *(names + currentIndexB); *(names + currentIndexB) = *(names + currentIndexB+1); *(names + currentIndexB+1) = tempSortNameHolder; } } } } else if ((argc == 2) && (strcmp(argv[1], "-d") == 0)) { //Sort DESCENDING without argument for (int currentIndexA = elementCounter; currentIndexA > 0; currentIndexA--) { for (int currentIndexB = 0; currentIndexB < currentIndexA -1; currentIndexB++) { compareReturnBSDsc = strcmp(*(names+currentIndexB), *(names+currentIndexB+1)); if (compareReturnBSDsc < 0) { tempSortNameHolder = *(names + currentIndexB); *(names + currentIndexB) = *(names + currentIndexB+1); *(names + currentIndexB+1) = tempSortNameHolder; } } } } else if ((strcmp(argv[1], "-d") == 0) || (strcmp(argv[2], "-n") == 0)) { //Sort ASCENDING with n-th word for (int currentIndexA = elementCounter; currentIndexA > 0; currentIndexA--) { for (int currentIndexB = 0; currentIndexB < currentIndexA -1; currentIndexB++) { for(int currentIndexC = 0; currentIndexC < 2; currentIndexC++) { strPtrA = strtok_r(NULL, delimiter, &names[currentIndexB]); } tempSortNameHolderNthA = strPtrA; /* for (int currentIndexD = 0; currentIndexD < 2; currentIndexD++) { strPtrB = strtok(NULL, delimiter); } tempSortNameHolderNthB = strPtrB; */ sortIndex++; compareReturnBSAsc = strcmp(tempSortNameHolderNthA, tempSortNameHolderNthB); if (compareReturnBSAsc > 0) { tempSortNameHolder = *(names + currentIndexB); *(names + currentIndexB) = *(names + currentIndexB+1); *(names + currentIndexB+1) = tempSortNameHolder; } } } } printf("\n"); for (int currentIndexC = 0; currentIndexC < elementCounter; currentIndexC++) { printf("%s", *(names+currentIndexC)); } return 0; } 方法。

答案 1 :(得分:0)

创建具有您要发送的名称ID和值的隐藏输入字段

eg.<input name="say" id="say" value="Hi">

然后在您的网络中查看devtool中的数据