不允许张贴方法

AJ_83

我尝试了以下示例:http : //www.c-sharpcorner.com/UploadFile/surya_bg2000/developing-wcf-restful-services-with-get-and-post-methods/

GET方法工作完美,但POST方法却不完美。调试时,strReturnValue变量始终为空。当我继续时,状态为:405方法不允许。我究竟做错了什么?

在C#中,我不得不将Method从POST更改为OPTIONS。

我正在使用Restangular(angular js)。这是前端功能:

        var message = {
            Name: new_player.name,
            Created: (new Date()).toJSON(),
            Affilation: new_player.human,
            auth: new_player.auth
        }
        return Restangular.one('').post('CreatePlayer', message).then(function(){
            console.log("Object saved OK");
          }, function() {
            console.log("There was an error saving");               
        });

在此处输入图片说明

编辑

[System.ServiceModel.OperationContract]
    [System.ServiceModel.Web.WebInvoke(UriTemplate = "CreatePlayer", Method = "OPTIONS", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    string CreatePlayer(System.IO.Stream data);

    public string CreatePlayer(System.IO.Stream data) {

        //convert stream data to StreamReader
        System.IO.StreamReader reader = new System.IO.StreamReader(data);

        //read StreamReader data as string
        string XML_string = reader.ReadToEnd();
        string result = XML_string;

        //return the XMLString data
        return result;
    }
AJ_83

必须将我的前端电话的标题更改为:“ application / x-www-form-urlencoded”(默认的Internet媒体类型)。

        return Restangular.one('').customPOST({
            Name: new_player.name,
            Created: new Date(),
            Affilation: new_player.human,
            auth: new_player.fed
            }, 'CreatePlayer', {},
            {'Content-Type': 'application/x-www-form-urlencoded'
        })

或者,您可以使用有角的$ http服务:

$http({
    url: 'http://localhost:31736/BusinessService.svc/CreatePlayer',
    method: 'POST', 
    data: "test",
    headers: {"Content-Type": "application/x-www-form-urlencoded"}
}); 

就是这样!然后,我可以序列化结果字符串并前进到我的业务逻辑。

    public string CreatePlayer(System.IO.Stream data) {

        //convert stream data to StreamReader
        System.IO.StreamReader reader = new System.IO.StreamReader(data);

        //read StreamReader data as string
        string XML_string = reader.ReadToEnd();

        System.Web.Script.Serialization.JavaScriptSerializer json_serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        BusinessObjects.Player Player = json_serializer.Deserialize<BusinessObjects.Player>(XML_string);

        return BL_CreatePlayer.CreatePlayer(Player);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不允许的方法

来自分类Dev

为什么我收到“不允许张贴”信息(405)?

来自分类Dev

Flask 不允许的方法

来自分类Dev

405不允许用于POST的方法

来自分类Dev

烧瓶中方法不允许错误

来自分类Dev

不允许部分应用“变异”方法

来自分类Dev

Thingworx:不允许使用GET方法

来自分类Dev

硒测试:方法不允许错误

来自分类Dev

方法内部不允许接口

来自分类Dev

405不允许使用方法

来自分类Dev

烧瓶-不允许使用方法

来自分类Dev

不允许ExpressJS 405 POST方法

来自分类Dev

Microsoft Graph订阅-不允许的方法

来自分类Dev

OneupUploaderBundle(blueimp),-不允许的方法

来自分类Dev

“细节”: “方法\” POST \ “不允许的。”

来自分类Dev

不允许的方法(POST):/ home /

来自分类Dev

Grails“不允许的方法”怪异

来自分类Dev

appannie API错误:方法不允许

来自分类Dev

405不允许使用Spring的方法

来自分类Dev

OneupUploaderBundle(blueimp),-不允许的方法

来自分类Dev

方法不允许使用滑轨

来自分类Dev

不允许使用方法“ POST”

来自分类Dev

不允许使用 Laravel 方法

来自分类Dev

烧瓶中不允许的方法

来自分类Dev

Laravel 5.4 中不允许的方法

来自分类Dev

不允许的方法 (POST) - 搜索

来自分类Dev

AngularJS / Laravel DELETE(不允许的方法)

来自分类Dev

Django:不允许的方法(POST):

来自分类Dev

Python 不允许我调用方法