Angular http post请求不发送任何数据.没有人甚至在chrome调试器

Angular http post request not sending any data. No body even in chrome debugger

本文关键字:没有人 调试器 chrome 数据 任何 post http 请求 Angular      更新时间:2023-09-26

我不明白。这对我来说每天都是司空见惯的事情,我不知道为什么会这样失败。这将是一些愚蠢的事情,但它不是通常的"服务器端没有数据"。除了post请求之外,绝对没有任何东西发送到服务器,没有正文。

$http.post(urls.base_signup, ({
    email: $scope.email,
    google_id: $scope.google_id,
    google_token: $scope.google_token,
    name: $scope.name
}))

这是在chrome调试器的网络选项卡中的请求:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,es;q=0.6
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:paypertrade.com
Origin:https://paypertrade.com
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36

为什么没有有效载荷?

显然这是我的本地服务器,hosts文件,https和nginx设置的安全问题。需要在我的nginx配置中添加这些头以使其正常工作:

add_header Access-Control-Allow-Origin *;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept';

对于我自己的情况来说,这是一个非常特殊的问题,但我想我应该分享一下,以防别人开始为此发疯。

http://xkcd.com/979/

为什么在()中放入数据,试试:

$http.post(urls.base_signup, {
  email: $scope.email,
  google_id: $scope.google_id,
  google_token: $scope.google_token,
  name: $scope.name})
相关文章: