我在程序中使用了烧瓶会话来维护所有动态信息。我已经在本地主机上托管了我的服务。
from flask import Flask,make_response,render_template, request, jsonify,json,jsonify,send_from_directory,session
from flask.ext.cors import CORS, cross_origin
import requests
app = Flask(__name__)
app.secret_key='test'
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/getAnswer')
@cross_origin()
def getAnswer():
userQuery = request.args.get("query")
session['username']="testuser"
session['userid']="Utkj3YC"
reply=askquestion(userQuery,session)
print "giving response : ",str(reply)
answer=str(reply)
return jsonify(response=answer,id="1",status="suc",dialog="initial")
if __name__ == '__main__':
app.run(host='0.0.0.0',processes=True,debug=True,port=8000)
这是我的烧瓶服务,当我从邮递员restclient测试时,这工作正常。邮递员请求维护相同的会话变量。
问题在于我将此服务与我的UI集成在一起。每次重置烧瓶会话变量的ajax请求,因为我无法维护会话。 我的ajax调用如下
$.ajax({
url: "http://127.0.0.1:8000/getAnswer",
method: 'GET',
data: { query: query,dialog:dialog },
success: function(data) {
var $chatBox = $('#botReplyDiv').clone().prop('id',"botdiv"+data.id);
var $loading = $('.loader');
$chatBox.css("display", "block");
var ul = document.createElement('ul');
console.log(data.response);
var resp=data.response;
var li=document.createElement('li');
li.appendChild(document.createTextNode(data.response));
ul.appendChild(li);
}
});
我也尝试在ajax请求中添加它。
xhrFields: {
withCredentials: true
}
但问题仍然存在。每次在flask中创建一个新会话。但是当我使用POSTMAN时,相同的代码,它是持久的同一个会话。为了使ajax调用在每个请求中保持相同的会话,我必须做什么改变?
答案 0 :(得分:0)
问题是我在客户端代码中使用http://locahost:8000/getAnswer。我改变了它http://127.0.0.1:8000/getAnswer,现在工作正常。