gpt4 book ai didi

Angular 7 不发送 xhr 请求

转载 作者:搜寻专家 更新时间:2023-10-30 21:18:47 26 4
gpt4 key购买 nike

这是我的第一个问题,所以我尽量保持简短。

这就是我的 Angular 方法:

delete(id: number): Observable<User[]> {
console.log(id);
return this.http.delete(`${this.baseUrl}/deleteUser`)
.pipe(map(res => {
const filteredUsers = this.users.filter((user) => {
return +user['id'] !== +id;
});
return this.users = filteredUsers;
}),
catchError(this.handleError));
}

我记录了 id,所以我知道它目前有效,但控制台之后的所有内容。日志不工作

我的 api 看起来像这样:

require 'connect.php';

// Extract, validate and sanitize the id.
$tp = ($_GET['id'] !== null && (int)$_GET['id'] >= 0)? mysqli_real_escape_string($con, (int)$_GET['id']) : false;
$id = (int)$tp;

var_dump($id);
if(!$id)
{
return http_response_code(400);
}

// Delete.
$sql = "DELETE FROM `user_items` WHERE `user_items_id` ='{$id}' LIMIT 1";

if(mysqli_query($con, $sql))
{
http_response_code(204);
}
else
{
return http_response_code(422);
}

例如,当我键入 localhost/api/deleteUser.php=?18 时,它会成功删除用户 ID 为 18 的用户。

我在我的应用程序中多次起诉此请求,它在其他任何地方都有效。我只是复制粘贴它并更改了我的类/数组/对象名称。

有人可以指出我的错误或给我一个替代方法的例子吗?

这就是我的 .htaccess 的样子

# Remove the php extension from the filename
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]


# Set the headers for the restful api
Header always set Access-Control-Allow-Origin http://localhost:4200
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT, UPDATE"

还有我在所有 api 中都需要的 connect.php

<?php

// db credentials
define('DB_HOST', 'localhost');
define('DB_USER', 'example');
define('DB_PASS', 'example');
define('DB_NAME', 'example');

// Connect with the database.
function connect()
{
$connect = mysqli_connect(DB_HOST ,DB_USER ,DB_PASS ,DB_NAME);

if (mysqli_connect_errno($connect)) {
die("Failed to connect:" . mysqli_connect_error());
}

mysqli_set_charset($connect, "utf8");

return $connect;
}

$con = connect();

最佳答案

您没有在调用删除函数的地方添加代码,但我假设您是这样调用它的 someService.delete();

它不会工作,因为你返回一个 Observable,它只在被订阅时工作。所以你需要把它改成

someService.delete(someId).subscribe()

someService.delete(someId).subscribe(callback)

希望对你有帮助

关于Angular 7 不发送 xhr 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632161/

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