首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Javascript上发布请求的问题

在Javascript上发布请求的问题
EN

Stack Overflow用户
提问于 2021-06-22 23:59:18
回答 2查看 49关注 0票数 0

因此,我正在开发一个用Flask开发并部署在Heroku上的web应用程序。我需要发出一个POST请求并从服务器接收一个响应。我设法让它使用一个Python脚本,但我需要“翻译”代码到Javascript,这样我就可以在我的网站上正确地使用它了。FlaskPython上的应用

代码语言:javascript
运行
复制
app = Flask(__name__)
CORS(app, support_credentials=True)
@app.route('/')
def index():
    return "Index Page"
@app.route('/predict',methods=['GET','POST'])
def predict():
    data = request.form.get('data')
    if data == None:
        return 'Got None'
    else:
        # model.predict.predict returns a dictionary
        prediction = makePrediction(data)
    return json.dumps(str(prediction))
if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True) 

工作的Python代码发出POST请求:

代码语言:javascript
运行
复制
def main():
    PARAMS = {'data':'sample text'}
    response = requests.post(url='https://textgenerator123.herokuapp.com/predict?', data=PARAMS)
    print(response.text)
if __name__ == "__main__":
    main()

我尝试使用Axios使用以下代码使用Javascript发出POST请求:

代码语言:javascript
运行
复制
axios.post('https://textgenerator123.herokuapp.com/predict?', {
  data: 'sample text'})
  
.then((response) => {
  console.log(response);
}, (error) => {
  console.log(error);
});

但是控制台返回"Got“。因此,web应用程序接收请求,但由于某种原因,数据作为Null。我是Javascript的新手,如果有人想帮我,我会很感激的。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-06-23 00:48:16

那网络呢?反应如何?如果是在200号的话,那邮筒就应该通过了。“response”可能是来自响应后的响应。我认为您应该检查开发工具中的网络请求,看看响应是什么。

票数 0
EN

Stack Overflow用户

发布于 2021-06-23 02:34:35

如果您使用data = request.get_json()而不是data.form,它应该可以工作,因为当您通过axios:{ data: 'sample text'}发送数据时,它会解析传入的数据。文档解释了可用于请求的方法,在这种情况下,表单数据可能不是您想要使用的。

代码语言:javascript
运行
复制
app = Flask(__name__)
CORS(app, support_credentials=True)
@app.route('/')
def index():
    return "Index Page"
@app.route('/predict',methods=['GET','POST'])
def predict():
      data = request.get_json()
    if data == None:
        return 'Got None'
    else:
        # model.predict.predict returns a dictionary
        prediction = makePrediction(data)
        print(prediction)
    return json.dumps(str(prediction))
if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68091973

复制
相关文章

相似问题

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