Angular / HttpClient - Как разместить данные в php-файле в моем Ionic Project - PullRequest
0 голосов
/ 08 октября 2018

Я пытался использовать модуль HttpClient, и он работает как шарм для получения файла JSON.Тем не менее, я пытаюсь опубликовать данные в php-скрипте в моем ионном проекте (src / assets / scripts / php / news.php).

src / assets / scripts / news.php:

header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

$postdata = file_get_contents("php://input", true);

src / pages / news / news.ts: small_smile:

sendNewsToPhp(news: string){
//let data = JSON.stringify(news);
let data = news;
this.http.post("../assets/scripts/php/news.php", data, {headers: {'Content-Type': 'application/json'}})
  .subscribe(
    response => console.log("Res provider :", response),
    error => console.log("err : ", error)
  );

}

ошибка:

<code>error: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /assets/scripts/php/news.php
\ n \ n \ n "headers: Object {normalizedNames: Map (0), lazyUpdate: null, lazyInit: lazyInit ()} сообщение:« Http-ошибка при http://localhost:8100/assets/scripts/php/news.php: 404 не найдена »name:« HttpErrorResponse »ok: ложный статус: 404 statusText: "Not Found" url: "http://localhost:8100/assets/scripts/php/news.php"

Я уже пробовал:

http://localhost:8100/assets/scripts/php/news.php
http://myip:8100/assets/scripts/php/news.php

Я думаю, проблема в том, что мой файл находится в моем ионном проекте.Можно ли это сделать?

Чтобы знать -> я не могу получить доступ к своему файлу php с помощью URL.

1 Ответ

0 голосов
/ 20 ноября 2018

Я думаю, вы ошибаетесь.PHP работает над службой Apache / Ngix на порте 80, а не на ионном порте обслуживания, как вы думаете, верно?На самом деле, у нас обычно есть отдельный веб-сервис в качестве поставщика данных, поэтому наш URL-адрес запроса часто похож на this.http[get/post/put/delete]('http://server.domain/api/your-page.php', data). Вы можете обновить угловую конфигурацию, указав раздел прокси, но настройки прокси выглядят неработающими после упаковки в приложение, поэтому мой кодэто обновление url = baseUrl + url; перед отправкой.

...