【问题标题】:Form Cross domain POST request using PHP使用 PHP 形成跨域 POST 请求
【发布时间】:2013-06-01 21:19:21
【问题描述】:

我正在尝试将数据从表单发送到 php 文件,以便将其存储在数据库中,但它无法正常工作...

表单的代码与 php 文件不在同一服务器上,因为表单将在移动应用程序上。

html

<div data-role="page" id="createclub">

<div data-role="content">
    <form id="cname" align="left" action="post">
        <label for="name">Enter Name:</label>
        <input type="text" id="name" value=""  />
        <input type="submit" value="Submit" data-inline="true">
    </form>

    <div id="result"></div>
</div>

    <script type="text/javascript">
       $(document).ready(function(){
        $("#cname").submit( function () {
        $.post(
        'http://www.clubbedin.isadcharity.org/createclub.php',
        $("#cname").serialize(),
        function(data){
        $("#result").html(data);
        alert("Data " + data);
        }
        );
        return false;
        });
        });
    </script>

php 文件

$name = $_POST['name'];

谢谢!!!

【问题讨论】:

    标签: php ajax cross-domain


    【解决方案1】:

    我认为您需要使用 .preventDefault() 阻止提交按钮的默认功能,因为当我查看您的代码时,您想使用 ajax 提交表单

     $("#cname").submit(function (e) {
        e.preventDefault();
        $.ajax({
            url: 'http://www.clubbedin.isadcharity.org/createclub.php',
            crossDomain: true, //set as a cross domain requests
            type: 'post',
            data: $("#cname").serialize(),
            success: function (data) {
                $("#result").html(data);
                alert("Data " + data);
            },
        });
    });
    

    请使用.ajax(),以便您可以将您的ajax请求设置为跨域请求

    http://api.jquery.com/jQuery.ajax/

    【讨论】:

    • 作为 Mahan siad,如果你使用 .ajax,你可以跨域
    【解决方案2】:

    您的输入元素&lt;input type="text" id="name" value="" /&gt; 必须将名称属性设置为name="name"

    编辑后形成#cname

    <form id="cname" align="left" action="post">
        <label for="name">Enter Name:</label>
        <input type="text" id="name" name="name" value=""  />
        <input type="submit" value="Submit" data-inline="true">
    </form>  
    

    您可以从 jQuery API 文档中收集更多信息:
    http://api.jquery.com/
    http://api.jquery.com/serialize/

    【讨论】:

      【解决方案3】:

      在 PHP 文件的开头添加:

      header("access-control-allow-origin: *");
      

      关于跨域策略here的更多信息。

      【讨论】:

      • 在这种情况下请接受我的回答。如果它不正确,你为什么要接受别人的回答?
      猜你喜欢
      • 2012-04-15
      • 2011-08-19
      • 2017-02-06
      • 1970-01-01
      • 2010-12-07
      • 2013-01-10
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多