Javascript 将字符串从textarea转换为请求头
我尝试制作一个表单,提交一个请求并将结果发布到页面中。我有请求主体、url和标题的输入。但是我对标题有一个问题。我不知道如何转换字符串: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){
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"}