0

これは簡単なことのように思えますが、Web サービス呼び出しを呼び出すことができません。これが私のコードです:

var data = '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}';

$.ajax({
    url: 'MyPage.aspx/MyMethod',
    data: data,
    type: 'GET',
    contentType: "application/json; charset=utf-8",
    dataType: "json", 
    success: function(response) {
        // Do stuff                                                      
    },
    error: function(xhr) {                          
        alert(xhr.responseText);
    }
}); // end $.ajax       

一見すると、GET の代わりに POST を使用する方が適切かどうか疑問に思うかもしれません。おそらくそうなりますが、私は GET を使用して、厄介な Internet Explorer 12030 エラーの問題を回避しています。

私の Web メソッドの署名は次のようになります。

[WebMethod]
[ScriptMethod(UseHttpGet = true)] 
public static string MyMethod(string deviceId, int opid, string remarks)

最後に、私が見ているエラーはInvalid web service call, missing value for parameter: deviceId. 何が問題なのかわかりません。 deviceId渡された JSON 文字列リテラルで明確に示されます。

4

2 に答える 2

2

これが唯一の問題ではないかもしれませんが、データのJavascript が有効ではありません。JQuery docsによると、これはクエリ文字列または JSON オブジェクト (JSON 文字列ではない) のいずれかである必要があります。これを試して:

var data = { deviceId: "e9b3f993-7ca1-442b-a5c2-001ab86e1af4", 
    opid: 202, 
    remarks: "fefawef" 
};

編集

これはどう:

var data = { d: '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}' };
于 2012-08-03T21:08:09.517 に答える
2

パラメータに二重引用符を使用したため、単一引用符を使用する必要があります。

data = '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}'
于 2012-08-03T21:04:23.730 に答える