在IFrame中实现post url

时间:2018-02-22 16:39:10

标签: javascript iframe

如何在Javascript中向某些URL发出POST请求(请参阅下面的代码)?

到目前为止,我的代码无效,我实际上需要将其放入 iFrame (将其with和height设置为0)以防止主页重新加载。

$(document).ready(function(){
    $("button").click(function(){
        $.post(
           "http://control.msg91.com/api/sendotp.php?otp_length=4&authkey=xxx&message=Your OTP is ##OTP##&sender=OTPSMS&mobile=xxx&otp_expiry=2"
           , function(data){
                 alert(data);
           });
     });
});

2 个答案:

答案 0 :(得分:1)

如果你想使用iframe,那就不要使用XMLHttpRequest(NB $.post是一个包装XMLHttpRequest的jQuery。)

创建<form>。将其action设置为URL。它是methodPOST,而target<iframe>的ID。

将数据放入该表单中。然后提交。

如果您想完全使用JavaScript执行此操作,则可以使用DOM创建表单并使用完全隐藏的输入,以便现有页面中不会显示任何内容。确保将表单附加到文档中,因为某些浏览器不允许您提交不属于文档的表单。

也就是说,既然你想要一个没有尺寸的iframe,那么想要使用iframe似乎很奇怪。

您可能正在尝试解决CORS限制,但您应该能够使用您正在使用的代码成功发出请求。您将无法判断它是否成功(因为限制是在阅读响应时)。如果您使用iframe,则会遇到相同的限制。

如果要取消控制台中显示的错误消息,可以将fetchmode: "no-cors"一起使用。你仍然无法阅读回复。

答案 1 :(得分:-1)

确保您没有遇到CORS问题。除非您所使用的资源允许跨域策略的例外,否则如果您的网页不在control.msg91.com上,您将无法访问它。