Python中文
首页
教程
问答
标签
搜索
登录
注册
从Flas中的AngularJS接收JSON
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个AngularJS应用程序,它正在将<code>HTTP PUT</code>数据发送到<a href="http://flask.pocoo.org/" rel="nofollow">flask</a>;我可以看到数据正确到达服务器。。。但是,由于某些原因,当Angular向服务器发出<code>HTTP PUT</code>时,我的flask方法无法读取它。。。在</p> <p>烧瓶代码:</p> <pre class="lang-python prettyprint-override"><code>@app.route('/api/thing/hostform', methods=['GET']) @login_required def get_blank_host_row(): retval = [host_row(host_name="RANDOM_HOST")] return Response(dumps(retval), mimetype='application/json') @app.route('/api/thing/hostform', methods=['PUT']) @login_required def <a href="https://www.cnpython.com/list/append" class="inner-link">append</a>_blank_host_row(): retval = request.form.get('hosts', "!! ERROR !!") print "PUT RESULT", retval retval.append(host_row()) return Response(dumps(retval), mimetype='application/json') </code></pre> <p>“formsubmit_add2”正确地来自<code>/api/thing/hostform</code>;但是,由于某些原因,<code>request.form.get('hosts', "!! ERROR !!")</code>总是出现一个HTTP 500错误,如下所示。。。在</p> ^{pr2}$ <p>对于任何好奇的人来说,<code>request.json</code>就是{<cd6>},当我得到<code>HTTP PUT</code>。。。在</p> <h3>问题</h3> <p>如何正确接收AngularJS发送给<a href="http://flask.pocoo.org/" rel="nofollow">flask</a>的内容?在</p> <hr/> <p>HTTP PUT的Wireshark转储</em>:</p> <p>这是来自AngularJS的httpput的wireshark转储。。。在</p> <pre><code>Hypertext Transfer Protocol PUT /api/thing/hostform HTTP/1.1\r\n [Expert Info (Chat/Sequence): PUT /api/thing/hostform HTTP/1.1\r\n] [Message: PUT /api/thing/hostform HTTP/1.1\r\n] [Severity level: Chat] [Group: Sequence] Request Method: PUT Request URI: /api/thing/hostform Request Version: HTTP/1.1 Host: tsunami:5000\r\n User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0\r\n Accept: application/json, text/plain, */*\r\n Accept-Language: en-US,en;q=0.5\r\n Accept-Encoding: gzip, deflate\r\n Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n Referer: http://server_name:5000/formsubmit_add2\r\n Content-Length: 164\r\n [Content length: 164] Connection: keep-alive\r\n \r\n [Full request URI: http://server_name:5000/api/thing/hostform] Line-based text data: application/x-www-form-urlencoded {"hosts":[{"real_ip_addr":"","switch_port":"","host_nic_role":"Console", "host_name":"RANDOM_HOST","host_nic_name":"","switch_name":"", "altn_ip_addr":"192.0.2.42"}]} </code></pre> <hr/> <p><em>AngularJS$http PUT</em>:</p> <pre class="lang-javascript prettyprint-override"><code> $scope.add_row = function (data) { // build an ajax request with $scope.data var send = $http({ method : "PUT", url : "/api/thing/hostform", headers : {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}, data: {"hosts": data}, }); send.success( // something irrelevant here ); </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您对JSON使用了错误的mimetype。它应该是<code>application/x-www-form-urlencoded</code>,而不是<code>application/x-www-form-urlencoded</code>。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
尽管Python中的所有内容都是引用,为什么Python导师在没有指针的列表中绘制字符串和整数?
5 回答
尽管python中的表达式为false,但循环仍在运行
2 回答
尽管python代码正确,但从nifi ExecuteScript处理器获取语法错误
5 回答
尽管Python在Neovim中工作得很好,但插件不能识别Neovim中的Python主机
1 回答
尽管python字典包含了大量的条目,但它并没有增长
3 回答
尽管python说模块存在,为什么我会得到这个消息?
5 回答
尽管setuptools和控制盘是最新的,但无法识别singleversionexternallymanaged
6 回答
尽管stdout和stderr重定向,但未捕获错误消息
9 回答
尽管Tensorboard的事件太大,但Tensorboard的步骤太少了
3 回答
尽管tkinter上的变量已更改,但显示未更改
10 回答
尽管try/except使用Python进行单元测试时出现断言错误
5 回答
尽管URL是sam,但仍会抛出“达到最大重定向”
9 回答
尽管url有效,Pandas仍读取url的\u csv错误
8 回答
尽管while中存在时间延迟,但LINUX线程的CPU利用率为100%(1)
10 回答
尽管x0在范围内,Scipy优化仍会引发ValueError
10 回答
尽管xpath正确,但使用selenium单击链接仍不起作用
1 回答
尽管下载了ffmpeg并设置了路径变量python,但没有后端错误
1 回答
尽管下载了i,但找不到型号“fr”
6 回答
尽管下载了plotnine包,但未获取名为“plotnine”的模块时出错
4 回答
尽管为所有行指定了权重,网格(0)仍不起作用
6 回答