.load()传递POST请求

时间:2014-05-11 15:34:19

标签: javascript jquery ajax django templates

以下是使用ajax .load()从输入框加载django模板的示例。

加载方法的脚本

$( document ).ready( function() {
    $( '#searchSubmit' ).click( function() {
        q = $( '#q' ).val();
        $( '#results' ).html( ' ' ).load( '{% url "demo_user_search" %}?q=' + q );
    });
});

来自views.py

return render_to_response( template, data, context_instance = RequestContext( request ) )

VS。 post方法的脚本

 $.ajax({
        url : "/ajaxexample_json",
        type : "POST",
        dataType: "json",
        data : data2,
        success : function(json) {
            show_results(json); 
        },
        error : function(xhr,errmsg,err) {
            alert(xhr.status + ": " + xhr.responseText);
        }
        });
        return false;
    });

和来自views.py

return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')

我不知道POST方法是否有办法在成功时加载render_to_response模板,到目前为止我已经尝试并得到了200:错误并弹出(尽管所有相关内容)在弹出窗口中呈现txt / html)。

是否可以使用.load()函数提交POST?

1 个答案:

答案 0 :(得分:1)

要在使用POST时使用$.load(),您必须传递JSON对象作为第二个参数。第二个参数(当它是一个对象时)被视为数据并通过POST请求发送到后端。

Source(寻找'请求方法')