簡體   English   中英

無法發布-AngularJS,PHP(錯誤404)

[英]Cannot POST - AngularJS, PHP (error 404)

我正在嘗試將信息發送到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);
        });
    };
}]);

register.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中尋址register.php,就好像register.php腳本與基本html文件位於同一目錄中一樣。 但是,您的文件列表似乎表明您的index.html文件位於根目錄中,而register.php文件位於“腳本”子目錄中。

假設您沒有任何特殊的服務器端路由邏輯,則應從以下位置更新$ http調用中的地址:

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

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



編輯:根據來自OP的評論添加了信息

以上答案仍然是正確的-原始代碼不正確地引用了位於“ scripts”目錄中的register.php文件。 一旦解決,就存在另一個問題。

OP正在使用“咕serve服務”; 但是,grunt服務器不會開箱即用地處理php文件。 這是一台簡單的服務器,無需服務器端處理/執行(php)就可以提供靜態文件(html,js,css等)。 查看此問題/答案以進行有關grunt的php討論:

但是,請考慮安裝/運行功能更全的Web服務器(Apache,IIS等),特別是如果您希望在某個時候進行部署。

所以我已經安裝了WAMP,編輯了C:\\ wamp \\ bin \\ apache \\ apache2.4.9 \\ conf \\ httpd.conf並將c:\\ wamp \\ www更改為我的工作區文件夾,重新啟動了wamp,我使用localhost而不是localhost:9000現在,我必須使用絕對路徑:scripts / register.php無法正常工作,我必須使用http://localhost/orion/app/scripts/register.php

謝謝大家的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM