Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
226 views
in Technique[技术] by (71.8m points)

IFrame传入POST参数。

我有一个API,比如http://XXX/test, 只支持POST请求,需要传类似如下的参数才能拿到结果。

{
    "id": "12",
    "userInfo": {
        "name": "amy",
        "age": "13"       
    },
    "map":[
        {
          "fieldName": "AA",
          "mapName": "AAA"
        },
        {
          "fieldName": "BB",
          "mapName": "BBB"
        }
    ]
}

因为这个API是返回一个html页面的,准备用iframe实现,本来如果是GET请求的话,直接设置iframe的src为这个API就行了,但是这个API只支持POST请求,我就去搜了下解决方法, 发现可以用form表单的形式来实现这个功能。代码类似底下这样子.

<form
      id="moodleform" target="iframe"
      method="post" action="http://www.example.com/login/index.php"
>
    <input type="hidden" name="username" value="guest"/>
    <input type="hidden" name="password" value="guest"/>
    <input type="hidden" name="testcookies" value="1"/>
</form>
<iframe name="iframe"></iframe>
<script type="text/javascript">
    document.getElementById('moodleform').submit();
</script>

但是这里form表单里的参数要怎么传递呀?我要传的参数并不是简单的key-value映射,要怎么做呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

表单传参只支持key-value的形式。老老实实用ajax,如果跨域了,接口不支持跨域的,那就只能后端处理下,如果返回的html觉得麻烦,那就把html文本设为iframe的内容。然后dom查询就好了


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...