javascript – 在jQuery.post上,我收到消息:请求的URL不允许使用方法GET

我有以下问题:

我在Flask应用程序上工作,我想通过AJAX将一些数据传递给服务器.我对这个AJAX很新,所以我无法做对.

在我的客户端,当用户点击图标时,我想通过存储在变量消息中的jQuery.post传递一些数据:

jQuery("#icon_ID").click(function() {
    var message = {
        'GRAPH_TYPE': graphType
    };
    var _sendOnSuccess = function () {
    }

    var jqxhr = jQuery.post('/graph', message, _sendOnSuccess, 'json');
});

在我的服务器端,我有以下代码

@app.route('/graph', methods = ['POST'])
@login_required
def physical_graph():
    ret_data = request.form['GRAPH_TYPE']
    return ""

我现在要做的就是访问服务器端的GRAPH_TYPE.但是,当我单击该图标时,我收到错误消息:

Method Not Allowed

The method GET is not allowed for the requested URL.

我真的不明白为什么Python告诉我我正在使用GET方法,而实际上我正在使用POST方法.

请有人帮我这个吗?我该怎么做才能解决这个问题?如果我可以使用其他方法,请随时给我任何建议.请记住,除了jQuery之外,我不想使用其他JavaScript库.

先感谢您!

解决方法:

这是因为您将对象作为数据传递

var message = {
    'GRAPH_TYPE': graphType
};

在这种情况下,jQuery尝试对对象进行URL编码,认情况下使用数据类型application / x-www-form-urlencoded发送; charset = UTF-8 ans发送GET请求.要解决这个问题,请确保您为数据参数传递jQuery字符串,并且可以使用JSON.stringify之类的

var message = JSON.stringify({ "GRAPH_TYPE": graphType });

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...