相关疑难解决方法(0)

如何将数据作为表单数据而不是请求有效负载发布?

在下面的代码中,AngularJS $http方法调用URL,并将xsrf对象作为"请求有效负载"提交(如Chrome调试器网络选项卡中所述).jQuery $.ajax方法执行相同的调用,但将xsrf提交为"Form Data".

如何让AngularJS将xsrf作为表单数据而不是请求有效负载提交?

var url = 'http://somewhere.com/';
var xsrf = {fkey: 'xsrf key'};

$http({
    method: 'POST',
    url: url,
    data: xsrf
}).success(function () {});

$.ajax({
    type: 'POST',
    url: url,
    data: xsrf,
    dataType: 'json',
    success: function() {}
});
Run Code Online (Sandbox Code Playgroud)

ajax post angularjs angular-http

517
推荐指数
12
解决办法
39万
查看次数

AngularJs $ http.post()不发送数据

谁能告诉我为什么以下声明不会将发布数据发送到指定的网址?当我打印$ _POST时,在服务器上调用url - 我得到一个空数组.如果我在将数据添加到数据之前在控制台中打印消息 - 它会显示正确的内容.

$http.post('request-url',  { 'message' : message });
Run Code Online (Sandbox Code Playgroud)

我也尝试将数据作为字符串(具有相同的结果):

$http.post('request-url',  "message=" + message);
Run Code Online (Sandbox Code Playgroud)

当我以下列格式使用它时它似乎正在工作:

$http({
    method: 'POST',
    url: 'request-url',
    data: "message=" + message,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
Run Code Online (Sandbox Code Playgroud)

但有没有办法用$ http.post()来做 - 并且我总是必须包含标题才能使它工作?我相信上面的内容类型是指定发送数据的格式,但我可以将其作为javascript对象发送吗?

post angularjs angular-http

333
推荐指数
16
解决办法
69万
查看次数

如何在具有多个参数的angularjs中发送POST?

我想使用angularjs HTTP post service发送多个参数.

这是客户端代码:

$http.post("http://localhost:53263/api/Products/", [$scope.product, $scope.product2]).
        then(function (data, status, headers, config) { alert("success") },
             function (data, status, headers, config) { alert("error") });
Run Code Online (Sandbox Code Playgroud)

这是服务器端代码:

// POST api/<controller>
public void Post([FromBody]Product product,[FromBody]Product product2)
{
    var productRepository = new ProductRepository();
    var newProduct = productRepository.Save(product);
}
Run Code Online (Sandbox Code Playgroud)

但是当我发帖时我得到了错误.知道我做错了什么吗?

angularjs

38
推荐指数
3
解决办法
19万
查看次数

非常简单的AngularJS $ http POST结果为'400(错误请求)'和'无效的HTTP状态代码400'

我在Azure中托管了一个非常简单的.NET Web API,它有两个非常简单的方法:

[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)";
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个简单的插件来调用这些方法.在我的AngularJS代码中,我正在进行两个非常简单的$ http调用.GET工作正常.然而,POST总是返回"400(错误请求)",紧接着在我的WebStorm控制台中"XMLHttpRequestion无法加载......无效的HTTP状态代码400".

任何和所有建议赞赏!

编辑!!

您好,感谢非常快速的回复.我刚刚意识到我忘了添加一些非常相关的细节.

我的POST方法的参数是我称之为Envelope的对象,它包含两个属性:listingId (int)Description (string).当我添加urlencoded的Content-Type标头,并'{"listingId":1234, "Description":"some description"}'作为我的POST数据传递时,我在服务器上的POST方法中的env参数是NULL(也就是说,它似乎无法解析我提供的JSON).对不起,这是原始帖子中省略的.

javascript azure angularjs

10
推荐指数
1
解决办法
4万
查看次数

PHP没有响应Angularjs请求

我有一个带有一些angularjs验证的Raw表单,

<form name = "sform" novalidate="true">
<table border="0">
    <tr>
        <td>
            First name:
        </td>
        <td>
            <input type="text" name="fname" ng-model="fname" placeholder="First Name" required="true" ng-pattern="/^[A-Za-z]*$/">
        </td>
        <td ng-show="sform.fname.$invalid && !sform.fname.$pristine"  class="help-block">wrong name </td>
    </tr>

    <tr>
        <td>
            Last Name:
        </td>
        <td>
            <input type="text" ng-model="lname" placeholder="last Name" required="true" ng-pattern="/^[A-Za-z]*$/">
        </td>
        <td ng-show= "sform.lname.$invalid && !sform.lname.$pristine"  class="help-block">wrong Last name </td>
    </tr>
    <tr>
        <td>
            Email:
        </td>
        <td>
            <input type="email" ng-model="email" placeholder="email" required="true">
        </td>
        <td ng-show="sform.email.$invalid && !sform.email.$pristine"  class="help-block">wrong Email </td>
    </tr>
    <tr>
        <td>
            <button type="submit" ng-disabled="sform.$invalid" ng-click …
Run Code Online (Sandbox Code Playgroud)

php angularjs

6
推荐指数
1
解决办法
581
查看次数

从URL角度,编码和解码对象

我有一个要通过url传递的对象-类似于

$location.search(myObject) 
Run Code Online (Sandbox Code Playgroud)

但是,当该对象变成对象数组时,我很难将其到达那里。我想知道如何放置一个大对象(现在是一个对象数组,我不知道是否需要更改),然后将其拉回到带有

 $location.search()
Run Code Online (Sandbox Code Playgroud)

如果我的对象只是1个小对象,则此方法效果很好,现在它是一个内部具有级别的对象数组

 var testIt = [{
                    "module1" : 
                    [
                        { 
                            "name1"  : ["option1", "option2", "option3"]
                        },
                        { 
                            "name2"  : ["option1", "option2", "option3"]
                        }
                    ]
                },
                {
                    "module2" : 
                    [
                        { 
                            "name3"  : ["option1", "option2", "option3"]
                        },
                        { 
                            "name4"  : ["option1", "option2", "option3"]
                        }
                    ]
                }];

            $location.search(testIt);
Run Code Online (Sandbox Code Playgroud)

我该如何处理这样的事情(如果URL现在很大,就可以了,但是如果有一种方法可以缩小它,那就更好了!)

谢谢!

javascript angularjs

5
推荐指数
1
解决办法
4087
查看次数

如何使用angularjs序列化对象

如何在不使用$.paramjquery的情况下序列化对象?

我想要下面的对象:

var user = {username: 'ronald.araujo', password: '123456',};
Run Code Online (Sandbox Code Playgroud)

有以下输出:

username=ronald.araujo&password=123456
Run Code Online (Sandbox Code Playgroud)

有什么建议?记住我会使用Angularjs或纯Javascript来做到这一点.

编辑:

我使用动词"save"($ resource)angularjs.我怎么能设置标题"application/x-www-form-urlencoded"并序列化?

javascript jquery angularjs

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

angularjs ×7

javascript ×3

angular-http ×2

post ×2

ajax ×1

azure ×1

jquery ×1

php ×1