首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHP -无法从请求体检索特殊字符

IHP -无法从请求体检索特殊字符
EN

Stack Overflow用户
提问于 2022-05-26 00:52:27
回答 1查看 62关注 0票数 1

我试图使用ajax发送请求:

代码语言:javascript
复制
    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);

IHP的相应行动:

代码语言:javascript
复制
action CreatePostAction = do
        rBody <- getRequestBody
        putStrLn $ tshow rBody -- this returns: ""
        renderPlain "Request Received"

当我尝试发送“$”、“+”等特殊字符时,这是我在服务器上收到的请求:

代码语言:javascript
复制
POST /CreatePostMessage
  Params: [("body"," ")]
  Request Body: body=+
  Accept: */*
  Status: 200 OK 0.025023s
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-28 03:14:26

必须使用formBody对encodeURIComponent()进行编码,以对特殊字符进行编码,如下所示:

代码语言:javascript
复制
const params = "body=" + encodeURIComponent(formBody);

您的IHP操作应该能够处理特殊字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72385548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档