通过axios 从前台直接请求一个另外一个系统的后台接口,设置Header属性
{'Host': 'test.test.com'}
报错 unsafe header "Host"
查询百度得知是浏览器禁止设置部分headers属性:
w3c规定,不允许设置下面的请求头,为的是防止二次伪装请求,是出于安全考虑. Accept-Charset Accept-Encoding Connection Content-Length Cookie Cookie2 Content-Transfer-Encoding Date Expect Host Keep-Alive Referer TE Trailer Transfer-Encoding Upgrade User-Agent Via
解决方法:
通过后台请求这个接口,前台再读取后台的接口得到所需数据。
def handle(self):
url = 'http://test.test/query?from=1&count=10'
req = urllib2.Request(url, headers={'Host': 'test.test.com'})
data_rst = json.loads(urllib2.urlopen(req).read())['data']
return data_rst