gpt4 book ai didi

javascript - 为什么在我的 Angular 2 应用程序中发送的是 OPTIONS 请求而不是 PUT?

转载 作者:行者123 更新时间:2023-11-30 15:36:36 24 4
gpt4 key购买 nike

<分区>

我正在尝试执行模型的更新功能,尝试通过 PUT 调用 API 中的 Update 方法。

这是我的服务客户:

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, RequestMethod, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';

[...]

updateClients(client_id, data){
let headers = new Headers({ 'Content-Type': 'application/json' });

let body = JSON.stringify(data);

return this.http.put(`${this.baseUrl}/client/`+client_id, body, headers)
.toPromise()
.then(response => response.json().data)
.then(items => items.map((item, idx) => {
return{
id: item.id
};
}));
}

但它不起作用,因为该方法通过 OPTIONS 而不是 PUT。在我的浏览器控制台中出现:XMLHttpRequest can not load http://ip/api/client/5 。飞行前响应中的 Access-Control-Allow-Methods 不允许方法 PUT。

但是,在 API (Laravel 5.3) 中启用了 PUT 方法。我已经用 POSTMAN 试过了,它很管用。在我的响应标题中:

Access-Control-Allow-Origin: *
Allow: GET, HEAD, PUT, PATCH, DELETE
Cache-Control: no-cache
Connection: keep-alive

为什么它来自期权请求而不是放置? POST 方法适用于 Angular 2。

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