首页 > 解决方案 > 在 Javascript 上发出 POST 请求时出现问题

问题描述

所以我正在开发一个Flask使用Heroku. 我需要发出POST请求并从服务器接收响应。我设法让它与Python脚本一起工作,但我需要将代码“翻译”Javascript为,以便我可以在我的网站上正确使用它。该Flask应用程序Python

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

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发出POST请求:Javascript

axios.post('https://textgenerator123.herokuapp.com/predict?', {
  data: 'sample text'})
  
.then((response) => {
  console.log(response);
}, (error) => {
  console.log(error);
});

但控制台返回"Got None"。因此,Web 应用程序接收到请求,但由于Null某种原因带有数据。我是新手,Javascript如果有人试图帮助我,我将不胜感激。谢谢!

标签: javascriptflaskherokupostaxios

解决方案


网络呢?回应是什么?如果它在200,该帖子应该已经通过了。“没有得到”可能是来自发布响应正文的响应。我认为您应该检查开发工具中的网络请求以查看响应是什么。


推荐阅读