javascript - 将 Ajax 数据发布到 PHP REST 服务

标签 javascript php mysql json post

我知道这个问题之前已经被问过,但我尝试过的解决方案都不起作用,我编写了一个在服务器上托管的 php 休息服务,我在 chrome 上使用了高级休息客户端数据来测试我的休息服务,并且它有效,它将数据发送到数据库,但是当我在下面的 ajax 帖子中编写自己的客户端时,浏览器提示

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8383' is therefore not allowed access.

我尝试向我的 php 代码添加 header 仍然不起作用,我收到另一个错误...,我只是想知道我做错了什么?

 >// MY PHP REST SERVICE  
 <?php
 $servername = "localhost";
 $username = "root";
 $password = "xxxx";
 $dbname = "xxx";

 // Create connection
 $conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
 } 

 if($_SERVER['REQUEST_METHOD'] == "POST"){
 // Get data
 $name = $_POST['name'];
 $surname = $_POST['surname'];
 $email = $_POST['email'];
 $password = $_POST['password'];

 // Insert data into data base
 $sql = "INSERT INTO UserData.register (name, surname, email, password)
 VALUES  ('$name', '$surname', '$email','$password')";

  if ($conn->query($sql) === TRUE) {
  $json = array("status" => 1000, "msg" => "Done User added!");
  } else {
   $json = array("status" => 0, "msg" => "Error adding user!");
  }
 header('Content-type: application/json');
 echo json_encode($json);
 $conn->close();
 }



 > //MY java script ajax client doing the posting.

   <script type="text/javascript">        
      function RegisterUser() {

        var name = $("#name").val();
        var surname = $("#surname").val();
        var email = $("#email").val();
        var password = $("#password").val();


        $.ajax({
            type: "POST",
            url: "http://xxx.xxx.xxx.xxx/signup.php",
            data: '{"name":"' + name + '","surname":"' + surname +    '","email":"' + email + '","password":"' + password + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert(msg.d)
                         }

        });
  }
</script>

最佳答案

尝试使用 .htaccess 文件 header 添加 Access-Control-Allow-Origin "*" header 添加 Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

CORS 指南是 here其中列出了解决 CORS 问题的所有可能方法。

关于javascript - 将 Ajax 数据发布到 PHP REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192837/

相关文章:

javascript - Kendo UI Treeview - 绑定(bind)到本地数据时更新复选框状态

网格中的 PHP 数据循环

php - 在服务器端从 Android 验证用户

php - 使用复选框管理前端两个数据库表之间关系的有效方法?

PHP插入错误没有解释

php - "SELECT * FROM users WHERE id IN ( )"==失败

javascript - 从 vue-router 的链接获取 'id' 值

javascript - 我如何使用循环在 JavaScript 中声明动态变量?

javascript - 如何计算同一页面中某件商品的费用?

PHP Propel ORM MySQL - 左连接多对多