IHP - 无法从请求正文中检索特殊字符
IHP - Unable to retrieve special characters from request body
我正在尝试使用 ajax:
发送请求
const formBody = document.getElementById('body'); // my form data
const XHR = new XMLHttpRequest();
const params = "body=" + formBody;
XHR.open("POST", window.origin + '/CreateFormAction');
XHR.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
XHR.send(params);
对应的国际水文计划行动:
action CreatePostAction = do
rBody <- getRequestBody
putStrLn $ tshow rBody -- this returns: ""
renderPlain "Request Received"
当我尝试发送“$”、“+”等特殊字符时,这是我在服务器上收到的请求:
POST /CreatePostMessage
Params: [("body"," ")]
Request Body: body=+
Accept: */*
Status: 200 OK 0.025023s
您必须使用 encodeURIComponent()
对 formBody 进行编码以对特殊字符进行编码,如下所示:
const params = "body=" + encodeURIComponent(formBody);
那时您的 IHP 操作应该能够处理特殊字符。
我正在尝试使用 ajax:
发送请求 const formBody = document.getElementById('body'); // my form data
const XHR = new XMLHttpRequest();
const params = "body=" + formBody;
XHR.open("POST", window.origin + '/CreateFormAction');
XHR.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
XHR.send(params);
对应的国际水文计划行动:
action CreatePostAction = do
rBody <- getRequestBody
putStrLn $ tshow rBody -- this returns: ""
renderPlain "Request Received"
当我尝试发送“$”、“+”等特殊字符时,这是我在服务器上收到的请求:
POST /CreatePostMessage
Params: [("body"," ")]
Request Body: body=+
Accept: */*
Status: 200 OK 0.025023s
您必须使用 encodeURIComponent()
对 formBody 进行编码以对特殊字符进行编码,如下所示:
const params = "body=" + encodeURIComponent(formBody);
那时您的 IHP 操作应该能够处理特殊字符。