php - 无法在 AngularJS 和 PHP 中发布(错误 404)

标签 php angularjs http header

我正在尝试将信息发送到 PHP 页面,但它返回 404 错误状态。

<form name="registerForm" novalidate>
    <div class="field"><label for="name">name : </label><input type="text" ng-model="register.registerInfo.name" name="name" id="name" autocomplete="off" required ></div>
    <div class="field"><label for="number">number : </label><input type="text" ng-model="register.registerInfo.number" name="number" id="number" autocomplete="off" required ></div>
    <br>
    <button ng-click='registerForm.$valid && register.register()'>send</button>
</form>

app.js 的一部分,我正在使用 ngrouting

    .controller('RegisterCtrl', ['$http', function($http){

    this.registerInfo = {
        name: '',
        number: ''
    };

    this.register = function() {
        var data = {
            name: this.registerInfo.name,
            number: this.registerInfo.number
        };

        $http.post('register.php', data).then(function(data) {
            console.log(data);
        }, function(error) {
            console.error(error);
        });
    };
}]);

注册.php

<?php 

$data = json_decode(file_get_contents('php://input'));
echo 'slt';
echo $data->data->name;

http://puu.sh/m4FVO/3e607fd137.png

│   404.html
│   favicon.ico
│   index.html
│   robots.txt
│
├───images
│       yeoman.png
│
├───scripts
│   │   app.js
│   │   connection.php
│   │   register.php
│   │
│   └───controllers
├───styles
│       main.css
│       style.css
│
└───views
        contact.html
        main.html

我想发送注册信息(姓名和号码),用 PHP 分析数据,如果可以,用 MySQL 保存。我不知道为什么它找不到 register.php,因为路径看起来是正确的,可能是服务器的问题?

最佳答案

您在 $http 中寻址 r​​egister.php,就好像 register.php 脚本与您的基本 html 文件位于同一目录中一样。但是,您的文件列表似乎表明您的 index.html 文件位于根目录中,而 register.php 文件位于“scripts”子目录中。

假设您没有任何特殊的服务器端路由逻辑,您应该更新 $http 调用中的地址:

$http.post('register.php', data)

$http.post('scripts/register.php', data)



编辑:根据 OP 的评论添加了信息

以上答案仍然正确——原始代码错误地引用了位于“scripts”目录中的 register.php 文件。修复后,存在另一个问题。

OP 正在使用“grunt serve”;但是,grunt 服务器不会开箱即用地处理 php 文件。这是一个简单的服务器,旨在提供静态文件(html、js、css 等)而无需服务器端处理/执行 (php)。在 grunt 下查看关于 php 的讨论的问题/答案:

但是,请考虑安装/运行功能更全面的 Web 服务器(Apache、IIS 等),尤其是当您希望在某个时候部署它时。

关于php - 无法在 AngularJS 和 PHP 中发布(错误 404),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34428209/

相关文章:

java - 将 servlet cookie 格式化为 http 友好格式

php - mysql 在 utf8_general_ci 中区分大小写

javascript - 重新加载页面并转到之前事件的选项卡 php jquery-jtable

javascript - 处理 Angular 模板文件内标签的脚本不起作用

javascript - 将下划线与 jshint 一起使用

java - 请求头太大

php - preg_replace 模式和主题数组返回空数组

php - 我可以在我的网站上使用指纹扫描仪吗?

angularjs - Clojurescript与JavaScript的互操作性

php - 应用程序在同一服务器上使用服务的最佳协议(protocol)?