我使用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>
我希望被重定向,就像我以常规形式提交一样。
我该怎么办?谢谢你的帮助
答案 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中的数据