【问题标题】:How to call webapp post url from angular app如何从角度应用程序调用webapp post url
【发布时间】:2016-03-29 16:54:49
【问题描述】:

这是我的 webapp 类

class CreateChannel(webapp.RequestHandler):
    def post(self):
        userEmail = self.request.get("userEmail", default_value='')
        userDBId = self.request.get("userId", default_value='')
        logging.info("Deleting existing channel and creating new channle for User Id : " + userDBId)

我正在从角度控制器尝试这样的操作

var objUser = JSON.stringify({
            "userId": Session.activeUserId,
            "email": Session.userId
        });

var deferred = $q.defer();
var route = URLS.AppUrl + "/createchannel";
deferred.resolve($http({
            method: 'POST',
            url: route,
            data: objUser
        }).success(function (response) {
            console.log("GeneralService : Channel Created");
        }).error(function(err){
            console.log("error")
        }));

我无法获取传递的参数。什么问题?

【问题讨论】:

  • 405 Method Not Allowed:Request-Line 中指定的方法不允许用于 Request-URI 标识的资源。响应必须包含一个 Allow 标头,其中包含所请求资源的有效方法列表。
  • 我知道的状态含义。问题是我怎么称呼它?

标签: angularjs webapp2


【解决方案1】:

对于json Content-Type,你应该这样做,

import json
class CreateChannel(webapp.RequestHandler):
    def post(self):
        params = json.loads(self.request.body)
        userEmail = params.get("userEmail") if params.get("userEmail") else ""
        userDBId = params.get("userId") if params.get("userId") else ""

【讨论】:

    【解决方案2】:

    你可以试试这样的:

    var objUser = {
            "userId": Session.activeUserId,
            "userEmail": Session.userId
        };
    
    var deferred = $q.defer();
    var route = URLS.AppUrl + "/createchannel";
    deferred.resolve($http({
                method: 'POST',
                url: route,
                data: objUser
            }).success(function (response) {
                console.log("GeneralService : Channel Created");
            }).error(function(err){
                console.log("error")
            }));
    

    您的服务器支持其他格式,所以您必须更改您的 objUser。

    【讨论】:

    • 尝试调试,从角度发布请求到您的服务器的内容。 “userId”、“userEmail”等名称应该相同。
    • 我检查的问题是,它没有获取参数
    • 405 状态是由其他代码引起的。真正的问题是我无法获取传递的参数
    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 2021-10-26
    • 2013-08-22
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    相关资源
    最近更新 更多