首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角2中发出http POST请求

在角2中发出http POST请求
EN

Stack Overflow用户
提问于 2016-02-15 04:30:46
回答 1查看 4.1K关注 0票数 3

我想在第二角提出下面的邮政请求。

代码语言:javascript
复制
http://gearman.local.eviry.com/info

具有如下的身体

代码语言:javascript
复制
{"gearman_servers" :[{

    "name" : "server 1",
    "addr" : "192.168.1.115"
    },
    {
    "name" : "Server 2",
    "addr" : "192.0.1.126"
    }
    ]}

我已经确保这在角2之外工作。(使用邮递员)我还确保启用了CORS。

以下是我的角码

代码语言:javascript
复制
var url = 'http://gearman.local.eviry.com' +
            '/info';
var GEARMAN_DATA = {"gearman_servers" :[{
            "name" : "server 1",
            "addr" : "192.168.1.115"
        },
            {
                "name" : "Server 2",
                "addr" : "192.0.1.126"
            }]};

        let body = JSON.stringify(GEARMAN_DATA);
        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });

        this.http.post(url, body, options)
            .map(res =>  res.json())
            .subscribe(
                data => {console.log(data);},
                err => this.logError(err),
                () => console.log('Fetching complete for Server Metrics')
            );

logError(err:Response){
        console.log("some error");
        console.log(err);
    }

然而,这样做会给我带来一个错误。

代码语言:javascript
复制
XMLHttpRequest cannot load http://gearman.local.eviry.com/info. Invalid HTTP status code 405

此外,当我在logError函数中输出错误时,我会得到以下内容:

http://grab.by/O7s8

很难弄清这一要求有什么问题。

请求头如图所示

代码语言:javascript
复制
 Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:gearman.local.eviry.com
Origin:http://evil.com/
Pragma:no-cache
Referer:http://localhost:3000/gearman-ui/job-queue
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
X-FirePHP:0.4.4
X-FirePHP-Version:0.4.4
X-Wf-Max-Combined-Size:262144

响应标头如图所示

代码语言:javascript
复制
Allow:POST
Cache-Control:no-cache
Connection:Keep-Alive
Content-Length:4519
Content-Type:text/html; charset=UTF-8
Date:Mon, 15 Feb 2016 08:32:54 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.1e-fips

如果有人使用邮递员,我有下面的代码可以工作。我必须使用棱角实现相同的功能(请注意,您将无法访问http://gearman.local.eviry.com)。

https://www.getpostman.com/collections/f14ecaf29ffd52a54534

EN

回答 1

Stack Overflow用户

发布于 2016-02-15 08:18:05

我尝试了一下您的请求(请参阅这个plunkr:http://plnkr.co/edit/6sbNYgIlCMNLkyyRerEk?p=preview),并且似乎您预先准备的请求的回复是不正确的:

代码语言:javascript
复制
XMLHttpRequest cannot load http://gearman.local.eviry.com/info. Response for preflight is invalid (redirect)

在看了这一次的答复之后,我有以下几点:

  • General 请求网址:http://gearman.local.eviry.com/info请求方法:选项状态代码:302找到远程地址:49.212.179.100:80
  • 响应头 连接:关闭内容长度:293内容类型:text/html;charset=iso-8859-1日期:Mon,2016年2月15日08:12:44格林尼治时间:https://gearman.local.eviry.com/info服务器:Apache
  • 请求头 接受:*/*接受-编码:gzip,紧缩,sdch接受-语言:en-US,en;q=0.8,fr-FR;q=0.6,fr;q=0.4访问-控制-头:内容类型访问-控制-请求-方法:POST缓存-控制:无缓存连接:http://run.plnkr.coPragma:无缓存引用:http://run.plnkr.co/IwOhToeVuXn1o1a4/用户-代理:Mozilla/5.0 (X11;AppleWebKit/537.36 (x86_64,类似壁虎) Chrome/48.0.2564.109 Safari/537.36

这个请求的302状态代码是我认为的问题。而且我在它的回复中没有看到任何CORS头..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35401520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档