Ajax 我无法将在Flask服务器中创建的python字典返回到Javascript HTML页面

Ajax 我无法将在Flask服务器中创建的python字典返回到Javascript HTML页面,ajax,post,flask,Ajax,Post,Flask,我正在尝试使用flask后端构建一个RESTAPI,该后端可以使用index.html页面中的AJAX调用进行调用。此后端服务器从my index.html页面接收参数,根据这些参数计算值,然后返回结果,以便可以在my index.html页面上打印 只有在使用单个变量(如alphaValues)时,我才能够将值传回,然后对该变量进行JSONified并返回 @app.route('/api', methods=['GET', 'POST']) //Thi @cross_origin() de

我正在尝试使用flask后端构建一个RESTAPI,该后端可以使用index.html页面中的AJAX调用进行调用。此后端服务器从my index.html页面接收参数,根据这些参数计算值,然后返回结果,以便可以在my index.html页面上打印

只有在使用单个变量(如alphaValues)时,我才能够将值传回,然后对该变量进行JSONified并返回


@app.route('/api', methods=['GET', 'POST'])
//Thi
@cross_origin()
def main_interface():
    if request.method == 'POST':
        data = request.get_json()

        parameters = {
            'local_pool_size': data["local_pool_size"],
            'plots': int(data["plots"]),
            'soil_effect': data["soil_effect"]=='true'
        }

        \\I then pass these parameters into another function to obtain an ordered dictionary of values to be plotted onto a graph.
        valueDict = get_plotting_variable(parameters)
        \\I first convert the elements in my original ordered dictionary to 
        dictionaries by accessing their key pairs
        alphaValues = dict(valueDict["alpha_mean"])
        alphaStd = dict(valueDict["alpha_std"])
        betaValues = dict(valueDict["beta"])
        pairWiseBeta = dict(valueDict["pairwise_beta"])

        \\I then assign these to a larger dictionary
        values = {"alphaValues":alphaValues,"betaValues": betaValues, "Std": alphaStd, "Pairwise_Beta": pairWiseBeta}

         \\Lastly, I then return these to my original function

         return jsonify(values)
这是我的AJAX调用


$.ajax({
            type: "POST",
            url: "http://127.0.0.1:5000/api",
            data: JSON.stringify(values),
            dataType: 'json',
      contentType: 'application/json',
      success: function(data){
        var result = JSON.parse(data)
        console.log(result)
        generateGraph(data)
      },
      error: function(){
        console.log("AJAX call was not succesful")
      }
    })
我希望我的flask后端中生成的值的字典返回到我的AJAX并登录,但我一直注意到我的AJAX调用没有成功。这方面的任何帮助都会很好

<>编辑:正如星火基金会的“科技”所建议的,我已经修改了Ajax调用到

error: function(xhr, textStatus, error){
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
      }

这反过来又给了我

OK
parsererror
SyntaxError: Unexpected token N in JSON at position 24
    at parse (<anonymous>)
    at Nb (jquery.min.js:4)
    at A (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)

假设
get\u plotting\u variable
函数正在使用
Pandas
进行计算,则当ajax接收响应并尝试解析响应时,
Dataframe
中返回的
NaN
值不会被处理

您需要将
NaN
值替换为
None
,这可以通过一行实现

df1 = df.where((pd.notnull(df)), None)

你能用
error:function(xhr,textStatus,error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
替换你的error函数吗?你有资格在flask中使用“/”注释吗?我知道的是#这是一条评论。@TechatTheSparksFoundation我已经更改了代码并重新运行了程序。下面是我得到的-200-parserrror-SyntaxError:XMLHttpRequest的A(jquery.min.js:4)处Nb(jquery.min.js:4)处parse()位置24处JSON中的意外标记N。(jquery.min.js:4)@assilither在我的python文件中将//更改为#!非常感谢:)@TechatTheSparksFoundation刚刚用python控制台中的最终词典更新了这个问题!非常感谢“火花基金会”的高科技!我最终在前端遍历了字典,但这是返回JSON文件时必须解决的主要问题。非常感谢!:)很乐意帮忙。。祝你一切顺利:)
df1 = df.where((pd.notnull(df)), None)