JSON.parse仅在部署在pythonanywhere上时返回语法错误

时间:2018-04-27 04:22:28

标签: javascript json ajax django

我是javascript和web开发的新手。所以这是一个用于检索和显示Twitter用户的最后10条推文的应用程序。它使用AJAX从Django驱动的服务器检索推文。应用程序在我的本地计算机上工作正常,但当我在pythonanywhere上部署时,JavaScript部分显示语法错误。 以下是HTML文件中的脚本部分。



<script>
  $("#HandleForm").on("submit", function (event) {
     event.preventDefault();
     var handle = $('#handle').val();
     get_tweets(handle);
  });

  function get_tweets(handle){
    $.ajax({
        url : "ajax/returntweets/",
        type : "GET",
        data : {handle_data : handle},
        success : function(json){
          var response = $.parseJSON(json)['tweet_data']
          $('#tweet_table').append('<li class="list-group-item list-group-item-success">Tweets of @' + handle + '</li>');

          for(i=0;i<response.length;i++){
            $('#tweet_table').append('<li class="list-group-item">'+response[i]+'</li>');
          }
          $('#tweet_table').append('<li class="list-group-item list-group-item-warning">Tweets End Here!</li>');

        },
    });
  }
</script>
&#13;
&#13;
&#13;

这是views.py返回推文数据:

auth = OAuth1(APIKey, APISecret, AccessToken, AccessTokenSecret)
username = request.GET.get('handle_data')
verificationUrl = ' https://api.twitter.com/1.1/users/show.json?screen_name=%s' %username
response = requests.get(verificationUrl, auth=auth)
tweets = []

if response.status_code == 200:
    requestUrl = ' https://api.twitter.com/1.1/statuses/user_timeline.json?tweet_mode=extended&screen_name=%s&count=10' %username
    r = requests.get(requestUrl, auth=auth,)
    for tweet in r.json():
        tweets.append(tweet['full_text'])
else:
    tweets.append("Invalid Handle")

response_data = {"tweet_data" : tweets}
return HttpResponse(json.dumps(response_data))

浏览器控制台显示以下错误

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

console.log(json)打印整个HTML文档。

1 个答案:

答案 0 :(得分:1)

使用JSON.parse代替$.parseJSON,如下面的代码

json_string = "{\"name\": \"google\"}"
json_data = JSON.parse(json_string);