javascript - angularjs 无法使用 POST 与 php 通信

标签 javascript php angularjs http post

我试图在我的服务器上发送数据,然后从 PHP 获取数据,但我认为它没有发送数据。

我的js代码:

angular
    .module('h2hApp', [])
    .controller('mainCtrl', ['$scope', '$http', function(scope, http) {

        scope.initGames = function() {
            http({
                method: 'POST',
                url: 'apis.php',
                data: {
                    url: someUrl
                }
            })
                .success(function(data) {
                    console.log(data);
                });
        };

        scope.initGames();
    }]);

和我的 PHP 文件:

<?php
    $url = $_POST['url'];
    echo file_get_contents($url);
?>

我唯一得到的回应是那个错误:

Notice: Undefined index: url in /my/path/apis.php on line 2

我使用 jQuery 完成了这项工作,但使用 AngularJS 它似乎不起作用。我是 Angular 的新手,我读过一些其他类似的问题。我尝试了添加标题和其他东西,但没有任何效果。

最佳答案

您可能会认为您的 PHP 脚本应该期待 $_POST 变量中的数据,因为传统上将您的数据编码为查询字符串一直是默认设置机制。

然而,Angular 默认将消息正文编码为 JSON 对象。如前所述,您可以改用 params 但是从长远来看,我认为它更灵活地符合服务器端。例如,您可以按如下方式读取和解码消息正文:

<?php
    $data = json_decode( file_get_contents('php://input') );
    echo $data->url;

关于javascript - angularjs 无法使用 POST 与 php 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892980/

相关文章:

javascript - 如何在窗口大小调整时重绘 SVG map ?

javascript - JavaScript 中音频缓冲区的 HTML 文件输入

javascript - AJAX 验证,ajax 不执行但它发送 get 到 index.php

php - 如何防止通过单击按钮创建的 div 在重新加载页面时消失?

javascript - .js 文件加载但不执行

javascript - double 组中的求和函数

javascript - Angular 指令 - 如果未设置范围怎么办?

javascript - 以灰度显示 html 页面

javascript - Wordpress:通过 ajax 获取条款

javascript - PHP获取提交按钮的值