Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过AJAX向Django发送的Javascript帖子根本不起作用,已经没有什么想法了_Javascript_Ajax_Django_Post - Fatal编程技术网

通过AJAX向Django发送的Javascript帖子根本不起作用,已经没有什么想法了

通过AJAX向Django发送的Javascript帖子根本不起作用,已经没有什么想法了,javascript,ajax,django,post,Javascript,Ajax,Django,Post,大家好,我们只是想把一个javascript字符串变量发布到django视图中。听起来很简单,但我已经三天没试过了!我几乎已经阅读了所有关于堆栈溢出的相关问题,我只是不知道我做错了什么 模板HTML页面上的JAVASCRIPT <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> <!--also have a jquery file imported further up in

大家好,我们只是想把一个javascript字符串变量发布到django视图中。听起来很简单,但我已经三天没试过了!我几乎已经阅读了所有关于堆栈溢出的相关问题,我只是不知道我做错了什么

模板HTML页面上的JAVASCRIPT

<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>

<!--also have a jquery file imported further up in my code - 
<script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
should be where it is getting ajax from, right?-->

<script language="JavaScript">
  $(function() {
  $( "#sortable" ).sortable();
  $( "#sortable" ).disableSelection();
  });

$(document).ready(function() {
$('#makeconstruct').submit(function()

{
        //Serializes the sortable's item id's into an array of string
        var senderStrIndexArray = $('#sortable').sortable();

    var linkOrder = $(senderStrIndexArray).sortable('toArray');
    alert(linkOrder);


    $.ajax({
        type: "POST",
        url: "/ecosystem/ajaxmes/",
        // The key needs to match your method's input parameter (case-sensitive).
        data: JSON.stringify({ linkOrder:linkOrder }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        //do we need json??
        success: function(data){alert(data);},
        failure: function(errMsg) {
            alert(errMsg);
        }
    });             
});
});
</script>
url.PY

url(r'^ecosystem/ajaxmes', 'container.views.ajaxmes'),
#Think this is the only line I need to show here

javascript linkOrder变量的警报起作用,但是我们得到的只是“不,我要哭了”的响应。我们现在真的很绝望,提前感谢您的帮助。

尝试将此
url(r'^economy/ajaxmes',container.views.ajaxmes')
更改为此
url(r'^economy/ajaxmes/,'container.views.ajaxmes'),


您正在将请求发送到“/economy/ajaxmes/”,但由于在url.py中没有尾随斜杠,因此请求将被重定向。

您的Javascript
提交功能没有返回false。这意味着Ajax被触发,但在它有机会做任何事情之前,按钮的默认动作会发生,表单会正常提交,这就是is_Ajax函数返回false的原因。如果JS返回false,则不会触发该操作。

hi,我们这样做了,然后它告诉我们在HTML中的表单操作中添加斜杠,我们这样做了。然后又回到了第1步,我们刚刚看到了“不,我要哭了”的页面。看起来,$.ajax位从未被访问过,因为我们可以完全更改它,并且什么也没有发生,相反,表单本身似乎直接调用视图\Hi,我们尝试将return false添加到每个位置,并添加到右括号之前,即:submit.(function(){CODE;return false;}),然后我们得到了警报(linkOrder)但是这一页就转到了我们上过的那一页。我们还从表单HTML中删除了method=“POST”和action=“/ecosystem/ajaxmes/”位,因为这是不需要的(可能是?@bioinformagician将事件传递给您的
submit(function(event))…
并作为回调函数
event.preventDefault()的第一行并返回报告。您好,谢谢您的回复,如果我按照我认为您要求的做了,警报就会出现,一旦您单击“确定”,其他任何事情都不会发生,它也不会更改页面或重新加载当前页面。@bioinformagician但这正是您想要的,不是吗?使用Ajax的全部目的是避免重新加载页面,但是您也没有编写任何JS来实际更改当前页面。好的,谢谢,这就是脚本的问题所在!event.preventDefault()与csrf stuff的一些斗争结合使用,必须在$.ajax调用的数据部分包含csrfmiddlewaretoken:{{csrf_token}}。
from django.utils import simplejson #not sure this is necessary given the code
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def ajaxmes(request):
    if request.is_ajax():
        message = "Yes, I am the king!!!"
    else:
        message = "No, I am going to cry!!"
    return HttpResponse(message)
url(r'^ecosystem/ajaxmes', 'container.views.ajaxmes'),
#Think this is the only line I need to show here