微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jquery – 使用POST请求,这是不允许的错误

我想让 jquery与Web服务进行通信!
function Test(item) {
    $.ajax({
        type: 'POST',url: 'WebService.asmx/Test',data: '{ "Item" : "' + item + '" }',contentType: 'application/json; charset=utf-8',dataType: 'json',success: function (msg) {
            alert("oi");
        },error: function (msg) {
            alert('Get Details Failure: ' + msg);
        }
    });
};

using System.Web;
using System.Web.Services;
using System.Data.sqlClient;
using System.Web.Script.Services;
using System.Web.Script.Serialization;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolBoxItem(false)]
[ScriptService]
public class WebService : System.Web.Services.WebService {

    public WebService () {}

    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod(UseHttpGet = true,ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
    public string Test(string Item)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        string strjson = js.Serialize(Item);
        return strjson;
    }

我收到以下消息:

{"Message":"An attempt was made to call the method \u0027Test\u0027 using a POST request,which is not allowed.","StackTrace":"   at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData,HttpContext context)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,WebServiceMethodData methodData)","ExceptionType":"system.invalidOperationException"}

解决方法

您的Web服务方法标有ScriptMethodAttribute,指定UseHttpGet = true.尝试删除此参数,或将其设置为false.这是阻止POST工作的原因.

原文地址:https://www.jb51.cc/jquery/178005.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐