我正在尝试通过PHP后端更新/插入MySQL数据库中的数据。 我正在使用AngularJS构建前端,并使用$http服务与REST API通信。
我的设置如下:
我通过$httpProvider设置标题:
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers = {'Content-Type': 'application/json;charset=utf-8'};
而 POST 调用看起来像这样:
return $http({
url: url,
method: "POST",
data: campaign
});
Chrome的Dev Console显示:
当我从POST改为PUT时,我会发送一个OPTIONS调用而不是PUT。并且内容类型切换到 content-type
。
我的请求有效载荷被发送为一个对象:
我应该如何正确设置我的头部?
编辑:
PHP后端设置了一些头部:
$e->getResponse()
->getHeaders()
->addHeaderLine('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$e->getResponse()
->getHeaders()
->addHeaderLine('Access-Control-Allow-Origin', '*');
有什么遗漏吗?
http.post
,它们都是简单的。头部被假定了。 - Dave Alperovich