0

我还有另一个问题:(我有 WS,wchich 是 VS 2010 MVC 应用程序的一部分。我可以调用它,它工作正常。我的问题是,我不能从变量(函数参数)传递参数

function test2(usr, art) {
    alert('start : ' + usr);

    var params = {user : usr, idArt : art}

    $.ajax({
        type: "POST",
        url: "/../WebServicePrzeczytany.asmx/Przeczytany",
        data: params,
        dataType: "json",
        success: function suc(msg) {
            alert("odebrane: ");
        },
        faild: fail
    });

    alert('stop : ' + art);
};

我从按钮调用它(用于测试)。有什么建议吗?

问题解决了 :

再次非常感谢 Firebug 的 Anthony Grist(见评论)。这是一个强大的工具。

所以,Firebug 告诉我,我收到了来自 WS 的错误消息。它是:“请求格式无法识别,因为 URL 意外以“/Przeczytany”结尾”。

解决方案是添加

<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices> 

到WS。就这样。朱皮!!:)

4

1 回答 1

0

如果您为您的 Web 服务启用 JSON(通过使用[ScriptService]属性装饰方法),您将能够像这样调用它:

function test2(usr, art) {
    alert('start : ' + usr);

    var params = {user : usr, idArt : art}

    $.ajax({
        // TODO: never hardcode an url like that => use an url helper to generate that!
        url: '/../WebServicePrzeczytany.asmx/Przeczytany',
        type: 'POST',
        data: JSON.stringify(params),
        contentType: 'application/json',
        success: function suc(msg) {
            alert('odebrane: ');
        },
        error: fail
    });

    alert('stop : ' + art);
};

注意事项:

  • 使用本JSON.stringify机方法将 javascript 对象转换为 JSON 字符串,然后再将其传递给 Web 服务
  • 设置contentType: 'application/json',因为这就是我们传递给服务的内容

留给你做:

  • 将硬编码的 url 属性替换为从 url 助手生成的 url(例如@Url.Content("~/WebServicePrzeczytany.asmx/Przeczytany"))。
于 2013-02-25T13:49:34.783 回答