我有一个使用WebForms的站点。它提供了曾经可以使用的服务,但是我的主机最近将站点迁移到了新服务器。数据库连接正常,但我的asmx服务现在断开了。
我有这个签名:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string GetJarLabel(string type, string serialized)
{
我用这个jQuery打电话:
var requestData = {
"type": "jam",
"serialized": JSON.stringify(data)
};
$.ajax({
type: "POST",
url: "/Labels.asmx/GetJarLabel",,
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: false,
data: JSON.stringify(requestData),
error: function(xhr, status, ex) {
...snip
},
success: function(r) {
...snip
}
});
据我所知,请求似乎已提交,但是该服务响应500: Invalid web service call, missing value for parameter: 'type'.
我试图切换到GET,但未进行字符串化,但是没有任何效果。我确定这在迁移之前是可行的,但是看不到它会如何影响它。
答案 0 :(得分:1)
在下面您可以看到您的ajax调用。您正在串扰名为lblData的东西。那是什么?那不是您在上面声明的内容。尝试改为通过requestData
。
$.ajax({
type: "POST",
url: "/Labels.asmx/GetJarLabel",,
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: false,
data: JSON.stringify(lblData),
error: function(xhr, status, ex) {
...snip
},
success: function(r) {
...snip
}
});
我假设无论lblData
是什么,它都没有type
的定义。
答案 1 :(得分:0)
我今天在家里的另一台机器上尝试了此操作(以前是在工作)。看来工作中有某种奇怪的出站代理设置会干扰请求。我想这课是要尝试来自其他国家或电话的VPN。