Angular HTTP Post 请求,Payload 嵌套在 JSON 对象中
Posted
技术标签:
【中文标题】Angular HTTP Post 请求,Payload 嵌套在 JSON 对象中【英文标题】:Angular HTTP Post Request, Payload is nested in JSON Object 【发布时间】:2015-03-19 05:15:18 【问题描述】:我正在学习 Angular 和 Node,我正在尝试弄清楚如何让我的 Angular 应用程序运行在一个单独的应用程序中,该应用程序托管一个 rest API。
请求正文显示为
'"name":"test"': ''
我希望它显示为
"name" : "test"
这是发送 post 请求的前端应用程序。
$http(
method: 'POST',
url: 'http://localhost:8080/api/test',
data:
"name": 'test'
,
dataType: "json",
headers: 'Content-Type': 'application/x-www-form-urlencoded'
);
它正在击中定义为的路线
app.use(bodyParser.urlencoded(extended: true));
app.use(bodyParser.json());
app.all('/', function(req, res, next)
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
);
router.post('/test', function(req, res)
var name = req.body.name;
console.log(req.body);
);
我预计问题出在内容类型为 application/x-www-form-urlencoded 但我不知道如何允许 cors 与 application/json。
【问题讨论】:
【参考方案1】:JSONP 可用于执行 CORS 请求(更多关于 json/jsonp 的信息,请参见 What are the differences between JSON and JSONP?),以及在 AngularJS 文档中 - jsonp using $http
【讨论】:
感谢您的回复!那也行得通。我阅读了有关 CORS 的更多内容,发现了预飞行的概念,并添加了一个函数,该函数将向 application/json 请求发送 200 回复,上面的代码现在可以工作了。 @dberry2002 那么您可以通过单击左侧的灰色复选标记来接受此答案正确 - ***.com/help/someone-answers 将在 4 分钟计时器到时执行。再次感谢:)以上是关于Angular HTTP Post 请求,Payload 嵌套在 JSON 对象中的主要内容,如果未能解决你的问题,请参考以下文章
使用 $http.post (angular) 和 bodyparser.text() 发送字符串请求时,请求正文作为对象返回?
如何在 Angular 4 Universal 中发出 http post 请求?
Angular http post 请求失败,但 axios 1 有效