相关疑难解决方法(0)

如何在没有jQuery的情况下使用$ http发布urlencoded表单数据?

我是AngularJS的新手,一开始,我想只使用AngularJS开发一个新的应用程序.

我正在尝试使用$http我的Angular App 对服务器端进行AJAX调用.

为了发送参数,我尝试了以下方法:

$http({
    method: "post",
    url: URL,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    data: $.param({username: $scope.userName, password: $scope.password})
}).success(function(result){
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它也使用jQuery $.param.为了消除对jQuery的依赖,我尝试了:

data: {username: $scope.userName, password: $scope.password}
Run Code Online (Sandbox Code Playgroud)

但这似乎失败了.然后我尝试了params:

params: {username: $scope.userName, password: $scope.password}
Run Code Online (Sandbox Code Playgroud)

但这似乎也失败了.然后我尝试了JSON.stringify:

data: JSON.stringify({username: $scope.userName, password: $scope.password})
Run Code Online (Sandbox Code Playgroud)

我找到了这些可能的答案,但没有成功.难道我做错了什么?我相信,AngularJS会提供这个功能,但是如何?

javascript ajax jquery angularjs angularjs-http

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

CORS POST请求无效 - 选项(错误请求) - 不允许来源

在最新的beta 2版本中,我遇到了跨域POST请求命中Api控制器的问题.

Chrome(和其他浏览器)吐出:

OPTIONS http://api.hybridwebapp.com/api/values 400 (Bad Request)
POST http://api.hybridwebapp.com/api/values 404 (Not Found) 
Run Code Online (Sandbox Code Playgroud)

它可能与此问题有关,但我已应用该解决方法和其他一些其他修补程序,例如web.config 添加

我一直在用这个敲打我的脑袋一段时间,所以我创建了一个解决方案来完全重现问题.

加载Web应用程序将有2个按钮,一个用于GET,一个用于POST,响应将出现在按钮旁边.GET有效.无法获得POST以成功返回.

在此输入图像描述

我能够从Fiddler那里得到一个提示,但这没有任何意义,因为如果你看一下它的反应就包含了Access-Controll-Allow-Origin标题中的域:

在此输入图像描述

解决方案中有一个名为"ConfigurationScreenshots"的文件夹,其中包含IIS配置(网站绑定)和项目属性配置的一些屏幕截图,以便尽可能轻松地帮助我:)

编辑:不要忘记将此条目添加到主机文件(%SystemRoot%\ system32\drivers\etc):

 127.0.0.1     hybridwebapp.com  api.hybridwebapp.com
Run Code Online (Sandbox Code Playgroud)

**状态:**似乎Chrome之类的某些浏览器允许我继续POST,无论OPTIONS响应中的错误消息如何(而其他像Firefox则没有).但我不认为这解决了.

查看它有的OPTIONS请求的Fidler截图

Access-Control-Allow-Origin:http://hybridwebapp.com

然而错误:

原产地http://hybridwebapp.com是不允许的

这完全是矛盾的,好像它忽略了标题.

asp.net cors asp.net-web-api

27
推荐指数
2
解决办法
5万
查看次数

使用nodeJS上传文件

我在使用nodeJS和Angular上传文件时遇到问题.

我找到了解决方案,但它只与Ajax有关,我不知道.有可能没有吗?

使用以下代码我收到此错误:

POST http://localhost:2000/database/sounds 413 (Payload Too Large)
Run Code Online (Sandbox Code Playgroud)

码:

HTML:

<div class="form-group">
        <label for="upload-input">This needs to be a .WAV file</label>
        <form enctype="multipart/form-data" action="/database/sounds" method="post">
            <input type="file" class="form-control" name="uploads[]" id="upload-input" multiple="multiple">
        </form>
        <button class="btn-primary" ng-click="uploadSound()">UPLOAD</button>
    </div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$scope.uploadSound = function(){
    var x = document.getElementById("upload-input");
    if ('files' in x) {
        if (x.files.length == 0) {
            console.log("Select one or more files.");
        } else {
            var formData = new FormData();
            for (var i = 0; i < x.files.length; i++) {
                var file = …
Run Code Online (Sandbox Code Playgroud)

html javascript node.js angularjs

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