我有另一个问题:( 我有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);
};
我是从按钮调用它(用于测试)。任何sugestions?
问题已解决:
再次非常感谢Anthony Grist(见评论),对于Firebug。这是一个强大的工具。
所以,Firebug告诉我,我收到WS的错误。它是:“请求格式无法识别,因为URL意外地以”/ Przeczytany“结尾。”
解决方案是添加
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
到WS。就这样。 jupi !! :)
答案 0 :(得分: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.Content("~/WebServicePrzeczytany.asmx/Przeczytany")
)生成的网址将硬编码的网址属性替换为您的服务。