【问题标题】:I can't call a file in php from angular, 404 Not found is showed我无法从角度调用 php 中的文件,显示 404 Not found
【发布时间】:2019-08-30 04:19:12
【问题描述】:

我正在尝试调用此路径中的文件:

/assets/usuarios/initLogin.php

我跑:

normograma > ng serve

这在http://localhost:4200/上运行

找不到 404 错误:

    return new Promise((resolve, reject) => {
    var headers;
        headers = new Headers({
        'Content-Type': 'application/json',
        'Authorization':  token
        });        
    const options = new RequestOptions({
        headers: headers
    });
    this.http.post("http://localhost/assets/usuarios/initLogin.php", {}, options)
    .subscribe(response => {
        try {
        response = response.json();
        resolve(response);
        } catch (error) {
        console.log('[api-274]', response);
        reject(response);
        }
    }, fail => {
        try {
        fail = fail.json();
        } catch (error) {
        console.log('[api-108]', fail);
        }
        reject(fail);
    });
    });

在 php 代码中是连接到云中数据库的代码。 我做错了什么?

【问题讨论】:

  • 您在本地服务器上使用 Xampp 类的软件吗?

标签: angular


【解决方案1】:

您没有在 php 服务器上运行这些特定的 php 文件,这就是问题所在。您要做的是从只能根据您的初始 ClientApp 参数解析 typescript、html 或 css/scss 的角度服务器调用 php 代码。您将需要设置一个单独的 php 服务器并将您的 php 代码放在那里。

我只提一句来自@jeff-lambert 来自this already answered Thread 的引述:

AngularJS 完全是客户端。您可以将 PHP 放入您的 HTML 模板中,但如果您不配置您的网络服务器以将 HTML 文件解析为 PHP,那么您的 PHP 甚至不会被解析。

即使这样做了,AngularJS 也会缓存这些模板,因此它只会在服务器上“运行”一次。这意味着如果有问题的模板被换出,那么模板使用的服务器上的数据发生变化,然后再次换回,数据的更新不会反映在模板中,因为绝对为零Angular 方面对这些更新的了解。

@Jonast92 在他的评论中说的一个好主意是尽量不要混合客户端和服务器端的关注点,并在它们之间强制执行严格的分离。在 Angular 应用程序的模板中使用 Angular 模型。

如果您不熟悉如何设置 php 服务器,请尝试XAMPP,它在 Windows 上运行良好。它易于安装和使用。安装 XAMPP 后,您将 php 文件放在 Xampp 的 httpdocs/wwwroot 文件夹中,并从 http://localhost:80/assets/usuarios/initLogin.php 而不是 http://localhost:4200/assets/usuarios/initLogin.php 进行 GET/POST/PUT/DELETE... 然后您的 PHP 代码应该从 PHP 服务器执行.

【讨论】:

    【解决方案2】:

    如果您使用的是Xampp,那么您需要将文件放在

    Xampp/htdocs/assets/usuarios/initLogin.php

    如果 Wampp 那么位置就是

    Wampp/www/assets/usuarios/initLogin.php

    【讨论】:

      【解决方案3】:

      你需要在你的 php 文件的顶部添加标题,就像这样,

      header("Access-Control-Allow-Origin: *");

      【讨论】:

        【解决方案4】:

        看,404 表示resource not found

        表示您正试图从服务器获取某些东西(资源),而服务器无法找到该资源。

        可能的原因:

        您尝试的路径错误,再次检查路径,同时检查端口,如果您的服务器配置了端口 80,则不需要端口,否则您需要添加带有 url 的端口,我看到你是直接的使用本地主机。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-28
          • 2013-03-15
          • 1970-01-01
          • 2019-01-13
          • 2017-09-06
          • 2018-12-03
          • 1970-01-01
          • 2016-03-22
          相关资源
          最近更新 更多