jQuery

时间:2019-03-14 13:46:54

标签: jquery asp.net ajax web-services asmx

我有一个使用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
            }
        });

enter image description here

据我所知,请求似乎已提交,但是该服务响应500: Invalid web service call, missing value for parameter: 'type'.我试图切换到GET,但未进行字符串化,但是没有任何效果。我确定这在迁移之前是可行的,但是看不到它会如何影响它。

2 个答案:

答案 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。