【问题标题】:Getting "Broken pipe from ('127.0.0.1', 33187)" when doing a get request using $.ajax使用 $.ajax 执行获取请求时获取“来自 ('127.0.0.1', 33187) 的损坏管道”
【发布时间】:2016-03-24 04:06:30
【问题描述】:

我正在尝试使用 form 标签、<input type='submit' method=get>jQuery 异步提交表单。

当我点击提交按钮时,我的终端回溯中出现以下错误:

[24/Mar/2016 03:55:14] "GET /? HTTP/1.1" 200 1270 [24/Mar/2016 03:55:14] "GET /submitted/1458791714827 HTTP/1.1" 302 0 - Broken pipe from ('127.0.0.1', 33187) 这是我的 HTML...

<body>
    <h1>API: Disney</h1>
    <form method="get">
      <input type='submit' value='CLICK ME VIEW ALL TIMESTAMPS BETWEEN NOW AND 5 MINUTES AGO!'></input>
    </form>
</body>

这是我的 jQuery...

$(document).ready(function(){
    $('form').submit(function(){
        var submittime = new Date().getTime()
        $.ajax({
            url: 'submitted/' + submittime,
        });
    });
})

这是我的观点...

class SubmitValue(View):
    def get(self, request, currdate):
        val = random.randrange(1,100)
        date = int(currdate)
        Data.objects.create(value=val, curr_time=date)
        return redirect('/')

这是我的应用程序 urls.py 文件...

url(r'^submitted/(?P<currdate>\d+)$', SubmitValue.as_view()),

这是我的模型...

from django.db import models

class Data(models.Model):
    value = models.IntegerField()
    curr_time = models.BigIntegerField()

【问题讨论】:

标签: javascript jquery python ajax django


【解决方案1】:

当单击input type=submit 时,因为我将method="get' 放在form 标记中,它发送了一个不必要的获取请求,该请求与$.ajax 获取请求同时运行。这会导致broken pipe 错误。为了摆脱它,我只是将method='get'form 标记中拉出,因此当用户单击input type=submit 时,它只发送一个获取请求。

像这样!

<body>
    <h1>API: Disney</h1>
    <form>
        <input type='submit' value='CLICK ME VIEW ALL TIMESTAMPS BETWEEN NOW AND 5 MINUTES AGO!'></input>
    </form>
</body>

【讨论】:

  • 可能你可以/应该处理提交按钮的点击事件并在里面使用防止
猜你喜欢
  • 2014-05-31
  • 2021-11-04
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多