【问题标题】:SyntaxError: Unexpected token < in JSON at position 1SyntaxError: 位置 1 的 JSON 中的意外标记 <
【发布时间】:2018-04-22 19:56:59
【问题描述】:

我正在使用 Django 学习 ajax。这是我的代码,但它在我的控制台中记录 SyntaxError: Unexpected token 。我尝试编辑 csrf_token 部分,但没有任何好处。我的代码中可能出现的故障是什么?

index.html

...
<form class="form-inline" action="translate/" method="post">
            {% csrf_token %}
            {{ form }}
            <div class="form-group">
                <input type="textarea" class="form-control email" id="email" placeholder="Enter text" name="string" autofocus="">
            </div>
            <button type="submit" class="btn btn-success pull-right">Convert</button>
        </form>
...
<script>
    var csrftoken = jQuery("[name=csrfmiddlewaretoken]").val();
    function csrfSafeMethod(method) {
        // these HTTP methods do not require CSRF protection
        return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken);
            }
        }
    });
    $("#email").keyup(function () {
      var value = $(this).val();

      $.ajax({
        type:"POST",
        url: '/translate/',
        data: {
          "value": value,
        },
        dataType: 'json',
        success: function (data) {
            alert(":)");
            console.log(data);
          {#$("#googletrans").html(data.googletrans);#}
        },
          error: function(xhr, status, error) {
          alert(error);
          console.log(error);
       }
      });

    });
</script>

views.py

@csrf_exempt
def convert(request):
    value = request.GET.get('value', None)
    data = {
        "googletrans":  "prateek"
    }
    return JsonResponse(data)

urls.py

urlpatterns = [
    url('', views.home, name='home'),
    url(r'^translate/$', views.convert, name='convert'),
]

【问题讨论】:

  • 我通常会发现意外的
  • 谢谢。你能告诉我为什么我的代码会返回 HTML 响应吗?
  • 为什么你在 ajax 中发送POST 请求却试图从request.GET 获取value
  • 错误函数中 xhr 对象中的 responseText 是什么?您可以尝试使用 postman 或其他 restclient 发送 POST 请求,并查看服务器实际返回的内容。

标签: jquery json ajax django


【解决方案1】:

我认为您的错误可能出在您的网址定义中。 尝试将第一个模式从'' 更改为'^/'

urlpatterns = [
    url('^/', views.home, name='home'),
    ...
]

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2016-08-29
    • 2019-01-04
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多