【问题标题】:Calling web api from ajax从 ajax 调用 web api
【发布时间】:2014-08-20 21:01:32
【问题描述】:

我在 .NET 中有以下代码:

// GET api/EmailValidationStaging/5
public EmailValidation GetEmailValidation(long id)

这是一个 GET 方法,我可以这样调用它:

$("#buttonFIND").click(function (e) {
    e.preventDefault();
    $.get("[removed for privacy]/webservice/api/emailvalidationstaging/" + $("#textRecordId").val() + "?key=key", function (json) {
                $("#RecordId").val(json.RecordId);
                $("#Email").val(json.Email);
                $("#Validated").val(json.Validated);
                $("#IsEmailCurrent").val(json.IsEmailCurrent);
                $("#SentOut").val(json.SentOut);
                $("#TableRecordId").addClass("showStuff");
                //alert("success");
            })
                .fail(function () { });
        });

一切正常!

现在我需要做同样的事情,但这次是 POST 方法,我不知道该怎么做。我尝试的一切都失败了,请有人给我一个体面的答案。我需要调用这个方法:

这是一个 POST 方法,我正在调用:

// POST api/EmailValidationStaging
public HttpResponseMessage PostEmailValidation(EmailValidation emailvalidation)

附加信息:

我正在使用 Fiddler Web 调试器 (Fiddler2)

在撰写下,我已经解析(选定的 POST),然后是这样的 url: [因隐私原因删除]/webservice/api/emailvalidationstaging/?key=key

我正在使用 HTTP/1.1 带有以下参数:

User-Agent: Fiddler
Host: 
Content-Length: 25
Content-Type: text/xml

请求正文: {"会员SSN":"999999999"}

我得到的结果是这样的:

HTTP/1.1 502 Fiddler - Gateway Connection Failed
Date: Thu, 21 Aug 2014 18:52:32 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache, must-revalidate
Timestamp: 11:52:32.933

【问题讨论】:

    标签: .net ajax web-services api post


    【解决方案1】:

    使用jquery post方法调用api方法:

    $.post()

    这是其文档的链接 jquery post 并确保您的 api 操作被标记为 HttpPost

    【讨论】:

    • 哦,哇,你是认真的。我不是想无礼,但你认为我不在那里???我试过了,我试过小提琴手动构建一个帖子,它不起作用!
    • 能否请您发布您在帖子中所做的事情以及您遇到的问题,以便我们为您提供帮助。
    猜你喜欢
    • 2015-03-12
    • 2016-07-14
    • 2013-08-29
    • 2013-11-12
    • 2015-08-24
    • 2015-05-22
    • 2014-09-15
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多