gpt4 book ai didi

php - Angular 应用程序不调用 php

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:37 25 4
gpt4 key购买 nike

所以,我有一个简单的 crud Angular Web 应用程序,并且出于某种原因,当我尝试对 php 执行 http.post 时,没有任何反应。抱歉,我对网络应用程序和 PHP 一无所知,我必须提供这个。

包含调用的服务(基本上调用 post php 的行在更新方法中,但我包含了所有文件,因为我不知道其他地方是否有问题):

import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class DbService {

public headers:Headers;

constructor(public http:Http) {
this.headers = new Headers();
this.headers.append('Content-Type', 'application/json');
}

getStock(){
return this.http.get('http://localhost/api/stock/read.php').map(res => res.json());
}

getSales(){
return this.http.get('http://localhost/api/ventas/read.php').map(res => res.json());
}

updateDB(member:string){

let data:Data;
data = {name:member};
console.log(data.name);

this.http.post('http://localhost/api/productos/create.php',
JSON.stringify(data),
{
method: 'POST',
headers: this.headers
});
}
}

interface CarrItem{
id: number,
name: string,
price: number,
stock: number,
quantity: number
}

interface Data{
name: string
}

这是 php,它在 Web 浏览器中使用时可以正常工作,我知道它会正确插入数据库。

<?php
// required headers
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json; charset=UTF-8");
header("Accept: application/json;");

require '../config/database.php';


$m_name = "20:23";


$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if(strlen($m_name)>0){
$insertMember = $pdo->prepare("INSERT INTO member(membershipType, firstName, lastName, sex, birthDate, accumulatedPurchases) values('Dorada', ?, 'M', 'Other', '2018-1-1', 50.0)");
$insertMember->execute(array($m_name));
$otra = $pdo->prepare("INSERT INTO brand(brandName) values('SI')");
$otra->execute();
}
else{
$otra = $pdo->prepare("INSERT INTO brand(brandName) values('NO')");
$otra->execute();
}

Database::disconnect();
?>

最佳答案

首先,我认为它可以在您的浏览器中运行,因为您正在执行 GET(而不是 POST)并且您没有在上面的代码中使用任何请求参数。按原样,您的代码将在获取请求数据时遇到问题。

将 JSON 数据发布到 PHP 有点复杂。 PHP 不会自动为您解析数据。相反,您必须执行类似...

$jsonEncoded = file_get_contents('php://input');
$jsonDecoded = (array) json_decode($jsonEncoded, true);

取而代之,可能会更容易...让 Angular 以旧式 application/x-www-form-urlencoded 格式发送数据,并让 PHP 自动将其解析为 $_POST 给你。

let body = new URLSearchParams();
body.set('name', member);
body.set('age', 28);
this.http.post(my_url, body);

关于php - Angular 应用程序不调用 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com