Xunruicms跨域提交表单(外部调用表单)

多个域名网站,想用同一个网站的全局表单,便于管理。
实现方法如下:

页面上必须有的两个js文件链接,否则表单没有作用

jQuery.min.js (第三方js)
cms.js (迅睿cms自带的js)

修改表单PHP文件(控制器)

找到表单文件(/dayrui/App/Form/Controllers/ 下有个和你创建的表单名称一致的php文件)
添加跨域请求(不知道是否必须填写,我是填写了)

//jsonp跨域请求响应头:
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:*');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');

再添加一个get方法(里面的input按自己需求增删改)

public function get()
    {
         //$data = input('get.');
         $data = [
             'email'=>input('get.email'),
             'name'=>input('get.title'),
             'phone'=>input('get.author'),
             'required'=>input('get.required'),
         ];

         $res = db('jsonp')->insert($data);
           if($res){
               return json(['code'=>200, 'msg'=>'成功']);
           }

    }
修改模板HTML

接下来回到模板里HTML进行添加表单(里面参数根据自己需要增删改)

<form action="javascript:void(0)" class="form-horizontal" method="post" name="myforms" id="myforms">
    <input type="text" class="form-control" placeholder="name" name="data[title]" /><br>
    <input type="text" class="form-control" placeholder="Phone" name="data[author]" /><br>
    <input type="email" class="form-control" placeholder="name@example.com" name="data[email]" /><br>
    <textarea class="form-control" rows="3" placeholder="Message(required)" name="data[required]"></textarea>
    <button id="sub" type="submit" onclick="dr_ajax_submit('主表单域名/index.php?s=form&c=Commforms&m=post', 'myforms', '', '')">Submit</button>
</form>

底部再加个jQuery代码

<script>
  $("#sub").click(function () {
      $.ajax({
          url: "主表单域名",
          type: "post",
          dataType: "jsonp",
          data: $("form").serialize(),
          success: function (res) {
          console.log(res);
      },
  });
});
</script>

完成上面两大部分,就可以实现跨域提交表单了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容