谷歌应用引擎JSON / AJAX无法正常工作

时间:2013-01-18 04:24:51

标签: ajax json google-app-engine python-2.7

这是我的JS代码:

    <script>
         $("#comments").click(function(event) {
            $.ajax({
               type: "GET",
               url: '/localhost:8080/comment',
               data: JSON.stringify(
                     {
                      'name': 'anon',
                      'subject': 'MY COMMENTS',
                     }),
               contentType: 'application/json',
               success: function(data,textStatus, jqXHR) {
                  console.log('POST response: ');
                  console.log(data);
              }
            });   
      });
   </script>

这是我的Python代码:

class Guestbook(webapp2.RequestHandler):

  def get(self):

    Jguest_data = json.loads(self.request.body) 
    return self.response.out.write(json.dumps(Jguest_data))

我收到错误404资源未找到。在挖掘之后,localhost存在一些问题。所以我尝试使用JSONP如下:

<script>
     $("#comments").click(function(event) {      
        $.ajax({ // ajax call starts
          url: "localhost:8080/comment", // 
          type: "GET",
          data:  JSON.stringify(
                {
                  'name': 'anon',
                  'subject': 'MY COMMENTS',
                }),
          dataType: "jsonp", // Choosing a JSON datatype
          success: function(data,textStatus,jqXHR) 
          {
              console.log('POST response: ');
              console.log(data);
          }
        });       
  });
 </script>

那仍然不起作用......我得到“没有JSON对象可以解码”错误。 我尝试用JSON.load替换JSON.loads ......但仍然出错......

有人可以告诉我这是什么问题吗?

提前致谢米尔

2 个答案:

答案 0 :(得分:0)

当您使用ajax执行GET请求时,您正在使用网址参数 所以请求中没有正文。
制作POST并将get()更改为post()

答案 1 :(得分:0)

您应该编辑app.yaml文件(如果项目中有文件),如果没有,请添加一个。

将此代码添加到您的文件(app.yaml)。

-url: /comment
  script: <url-to-the-server-side-script>

您可以在此处查看更完整的app.yaml文档,以便与python一起使用。

https://cloud.google.com/appengine/docs/python/config/appref

相关问题