Javascript 将字符串从textarea转换为请求头

Javascript 将字符串从textarea转换为请求头,javascript,http-headers,Javascript,Http Headers,我尝试制作一个表单,提交一个请求并将结果发布到页面中。我有请求主体、url和标题的输入。但是我对标题有一个问题。我不知道如何转换字符串: Content-Type : application/x-www-form-urlencoded 到 动态地。在我的文本区域中,可能有3-4个听话者被逗号分隔,因此如何将这些标题转换为该函数将接受的结构: function makePostRequest(url, data, headers, httpVerb, dataType, elementId){

我尝试制作一个表单,提交一个请求并将结果发布到页面中。我有请求主体、url和标题的输入。但是我对标题有一个问题。我不知道如何转换字符串:

Content-Type : application/x-www-form-urlencoded

动态地。在我的文本区域中,可能有3-4个听话者被逗号分隔,因此如何将这些标题转换为该函数将接受的结构:

function makePostRequest(url, data, headers, httpVerb, dataType, elementId){
    alert(headers);
    $.ajax({
    url: url,
    type: httpVerb,
    data: data,
    headers: {headers},
    dataType: dataType,
    success: function (data, textStatus, jqXHR) {
      $("#div").val(jqXHR.responseText);
    },
    error: function( jqXHR, textStatus, errorThrown ) { $("#div").val(jqXHR.responseText); }
    });
}
My textarea元素可能包含如下标题:

header1 : content1, header2 : content2

如果我理解了,在执行$ajax请求之前,您可以获取头并自己解析它,以创建一个您想要的字符串。当有多个标题时,可以使用正则表达式拆分标题

这不是真正的标题,这只是字符串操作: 你需要转身

"header1 : content1, header2 : content2"
进入

{"header1": "content1", "header2": "content2"}

通过使用
字符拆分第一个字符串,然后使用
拆分所有子字符串,应该就可以了。

在这里,基本上它是split()和trim()的组合。下面是一个例子:

$(函数(){
$('button')。在('click')上,函数(e){
变量头={}
var值=$('#foo').val()
//用逗号分隔标题
var parts=values.split(',')
//迭代每个组
$。每个(部件、功能(){
//split by:并修剪额外的空白
var innerParts=this.split(“:”).map(函数(项){
returnitem.trim()
})
//将给定结果添加到headers对象
标题[innerParts[0]]=innerParts[1]
})
console.log(标题)
})
})



单击我
这样的东西对你有用吗? 它基本上希望在新行中输入每个标题:

函数getHeaders(){ var headers=$('#headers').val(); var line=headers.split('\n'); var头={}; 对于(变量i=0;i
#标题{
高度:200px;
宽度:300px;
}

内容类型:application/x-www-form-urlencoded
标题2:价值

Get Headers Object
我也可以向其编写伪代码,但我没有javascjript的经验,这就是为什么我要求Kedi也可以向其编写伪代码,但我没有javascjript的经验,这就是为什么我要求将您的var Headers作为assoc数组?我不知道它应该是什么。。。现在我已经硬编码了一个值,但我没有javascript类型的经验,所以我无法回答您的问题。我需要的是一个函数,它可以将字符串转换为我的头变量,这样我就可以将其放入请求中,正如您在源代码中看到的一样是的,我想要这样的东西,但是在我的请求中使用它,如果我使用:headers:JSON.stringify(headers)或headers:headers,我的文本区域中的标题被忽略,只发出飞行前请求(使用选项http-verb)不字符串化标题,它应该是一个objectnope,仍然是一样的。但我会做一些进一步的研究。您提供的函数正在运行,因此我将把答案标记为已接受。感谢这一行
headers:{headers},
在您的代码中应该是
headers:computedHeaders
,其中
computedHeaders
是该函数的结果问题是f**king CORS。。。我在mocky的响应中添加了ed Access Control Allow Headers,现在它可以工作了。。。
{"header1": "content1", "header2": "content2"}