function fun3() { 
$.ajax({ 
url: "WebService1.asmx/WS3", 
dataType: "json", 
data: "", 
beforeSend: function(x) { 
x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
}, 
success: function(json) { 
alert(json.d); 
}, 
error: function(x, e) { 
alert(x.responseText); 
}, 
complete: function(x) { 
alert(x.responseText); 
} 
}); 
} 
下面的代码是正确的用GET方法调用有参数的WebService方法。
复制代码 代码如下:
function fun4() { 
$.ajax({ 
url: "WebService1.asmx/WS4", 
dataType: "json", 
data: encodeURI("s='GET有参数'"), 
beforeSend: function(x) { 
x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
}, 
success: function(json) { 
alert(json.d); 
}, 
error: function(x, e) { 
alert(x.responseText); 
}, 
complete: function(x) { 
alert(x.responseText); 
} 
}); 
} 
下图是正确的用GET方法(有参数和无参数)调用WebService方法所抓取的Request Headers。

从上图可以看到,用GET方法请求,不管是有参数还是无参数,都是没有Content-Length的,所以jquery也就不能为我们设置 Content-Type了,我只能手工设置Content-Type,所以我们也就没有必要设置jquery ajax的contentType了。
需要注意的是,GET方法与POST方法不同,有参数的时候,如果参数的值不是ASCII字符,要用encodeURI编一下码,要不服务端接收到的数据为乱码。
您可能感兴趣的文章:
