JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 非常简单AngularJS $http POST结果’400(错误请求)’和’无效HTTP状态代码400′大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的.NET Web API托管在Azure中,有两个非常简单的方法:
[EnableCors(origins: "http://simpleapiearl.azurewebsites.net",headers: "*",methods: "*")]
public class EnvelopesController : ApiController {
    // GET: api/Envelopes
    public IEnumerable<String> Get() {
        return new String[] { "value1","value2" };
    }

    // POST: api/Envelopes
    public String Post([FromBody]Envelope env) {
        return "rval: " + env + " (and my addition to env)";
    }
}

我创建了一个simple plunk来调用这些方法.在我的AngularJS代码中,我正在做两个非常简单的$http调用. GET工作正常.然而,POST总是返回一个“400(Bad request)”,紧接着在我的WebStorm控制台中,“XMLhttprequestion无法加载… http状态代码400无效”.

任何和所有的建议赞赏!

编辑!!

您好,感谢您的快速反应.我只是意识到我忘了添加一些非常相关的细节.

我的POST方法的参数是我称之为Envelope对象,它包含两个属性:lisTingId(int)和Description(String).当我添加urlencoded的Content-Type头文件,并将“{”lisTingId“:1234,”Description“:”some description“}’作为POST数据传递时,我的POST方法中的服务器上的env参数为NULL(即,似乎无法解析我提供的JSON).对不起,这从原来的帖子中被省略.

解决方法

我认为这篇文章会有所帮助.

How do I POST urlencoded form data with $http in AngularJS?

这是从你的修改的plnkr.您的代码缺少将JSON转换为编码的网址.

http://plnkr.co/edit/4aeEDz73qgHSfOv1sBgn?p=preview

$http({
    method: 'POST',url: 'http://simpleApiEarl.azurewebsites.net/api/envelopes',data: env,headers: {'Content-Type': 'application/x-www-form-urlencoded'},transformrequest: function(obj) {
      var str = [];
      for(var p in obj)
      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
      return str.join("&");
    }
  }).

大佬总结

以上是大佬教程为你收集整理的javascript – 非常简单AngularJS $http POST结果’400(错误请求)’和’无效HTTP状态代码400′全部内容,希望文章能够帮你解决javascript – 非常简单AngularJS $http POST结果’400(错误请求)’和’无效HTTP状态代码400′所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。