我在我的Node.js&中使用Ajax。 Express网站,以便从文本框向服务器端发送值。 现在,它正在发挥作用; req.body具有我需要的文本值,但是JSON的格式化方式对我来说很难获得值。简而言之,似乎我的ajax将变量名重命名为在文本框中输入的值。所以不是req.body正在
SDL_RenderSetScale(renderer, 4.0f, 2.0f);
SDL_Rect rect = { 16, 16, 128, 128 };
SDL_RenderCopyEx(renderer, tex, NULL, &rect, 90.0, NULL, SDL_FLIP_NONE);
req.body显示:
for j in range(5, 0, -1):
line = ''
for i in range(j, 0, -1):
line += str(i) + ' '
print line
E.g: 在我的Jade文件中:
{ hashtag: 'test123' }
然后,在我的server.js中:
{ test123: '' }
所以,如果我在文本框中输入:
test123
req.body显示:
form
input#hash(type='text', name='hashtag[hash]', placeholder='#Hashtag')
input#submit.btn.btn-primary(name='submit', type='submit', value='Send', onclick='return chk()')
p#msg
script.
function chk(){
var posthash = document.getElementById('hashtag').value;
console.log(posthash);
$.ajax({
type:"post",
url: "/api/hash",
data:posthash,
cache:false,
success: function(html){
console.log("Successfully posted");
$('#msg').html(html);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
console.log(error);
}
})
return false;
}
如您所见,变量名称本身就是文本框的值。因此,如果我试图说 console.log(req.body.hashtag)或 console.log(req.body.hash),它会显示为未定义 - 因为那不是变量名。
答案 0 :(得分:1)
问题在于您提交posthash
的方式。此变量包含您在输入中输入的字符串,但$.ajax
期望对象为data
选项。只需更改这样的行:
data: {hashtag: posthash} ,
并且因为您将hash
的输入声明为id
input#hash
你必须使用
document.getElementById('hash').value;
获得它的价值。