我正在向后端服务器执行帖子,后端服务器是一个openid身份验证库。当我有一个简单的表单,其动作指向服务器URL时,它工作。
但是当我使用$ http.post方法时,它失败了。我比较了标题并将内容类型更改为url-form编码。这解决了部分问题,但是从服务器重定向仍然失败。
关于常规表格帖子和角度$ http.post之间的差异是什么导致这种行为?
答案 0 :(得分:2)
但是服务器的重定向仍然失败。
服务器重定向不应该返回到前端,因为ajax请求将为您提供其最终页面到达的http状态代码。因此,如果您通过ajax请求的页面重定向到另一个页面,它将为您提供200状态。您可以阅读此http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-method的w3c草稿。
答案 1 :(得分:1)
如果您真的想看到差异,我建议您设置免费工具,例如Fiddler。然后,您可以在他们离开和/或到达时查看请求并查看每个差异。
但是,理论上,您在表单标记或$ http.post调用中只设置了任何差异。他们都使用POST我假设。一个人可能正在使用不同的内容类型(表单标签上的enctype)而不是另一个......比如“multipart / form-data”或“application / x-www-form-urlencoded”与“application / json”。 ..这是一个关键的部分,告诉服务器你发送什么类型的数据。如果服务器期望一种类型并获得另一种类型,则可能会导致您的失败。
虽然没有看到你的代码,但很难说。