出处:
http://bbs.csdn.net/topics/390858756
WebService是我们自己的项目,ajax是别人调用,但是我需要给别人写个例子。
WebService是带参数的,我现在用ajax调用后总是error报错,报错内容是空的。我贴下代码
这是WebService的代码
这是我写的html代码
WebService是我们自己的项目,ajax是别人调用,但是我需要给别人写个例子。
WebService是带参数的,我现在用ajax调用后总是error报错,报错内容是空的。我贴下代码
这是WebService的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.Services;
using
System.Web.Script.Services;
using
System.Web.Script.Serialization;
namespace
MeierbeiWebDtService
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace =
"http://tempuri.org/"
)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(
false
)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public
class
WebService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(UseHttpGet =
true
, ResponseFormat = ResponseFormat.Json)]
public
string
HelloWorld()
{
JavaScriptSerializer js =
new
JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType =
"application/json"
;
Models.HelloWorldData data =
new
Models.HelloWorldData();
data.Message =
"HelloWorld"
;
data.Name =
"MicJackson"
;
return
js.Serialize(data);
}
[WebMethod]
[ScriptMethod(UseHttpGet =
false
, ResponseFormat = ResponseFormat.Json)]
public
void
GetClass(
int
fenshu)
{
JavaScriptSerializer js =
new
JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType =
"application/json"
;
Models.HelloWorldData data =
new
Models.HelloWorldData();
if
(fenshu > 90)
{
data.Message =
"优异"
;
data.Name =
"语文"
;
}
else
if
(fenshu > 80)
{
data.Message =
"良好"
;
data.Name =
"语文"
;
}
else
if
(fenshu > 60)
{
data.Message =
"及格"
;
data.Name =
"语文"
;
}
else
{
data.Message =
"不及格"
;
data.Name =
"语文"
;
}
Context.Response.Write(js.Serialize(data));
Context.Response.End();
//return js.Serialize(data);
}
}
}
|
这是我写的html代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<
html
>
<
head
>
<
script
src
=
"jquery-1.11.1.min.js"
type
=
"text/javascript"
></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
$(document).ready(function(){
$.ajax({
url: "http://localhost:53568/WebService.asmx/GetClass",
type: "GET",
dataType: "json",
data: {fenshu: 23},
success: function(json) {
alert("success:"+json);
},
error: function(x, e) {
alert("error:"+x.responseText);
},
complete: function(x) {
alert("complete:"+x.responseText);
}
});
$.ajax({
url: "http://localhost:53568/WebService.asmx/HelloWorld",
type: "GET",
dataType: "json",
success: function(json) {
alert("success:"+json);
},
error: function(x, e) {
alert("error:"+x.responseText);
},
complete: function(x) {
alert("complete:"+x.responseText);
}
});
});
</
script
>
</
body
>
</
html
>
|
求助,哪里有问题,为什么得不到WebService返回的json数据啊?还有就是如果我想传参,有什么好点的办法吗?谢谢
额,自己解决了,是因为我的html页面不在同一个域里,没跨域,现在加上jsonp就没问题了
C# code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.Services;
using
System.Web.Script.Services;
using
System.Web.Script.Serialization;
namespace
MeierbeiWebDtService
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace =
"http://tempuri.org/"
)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(
false
)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public
class
WebService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(UseHttpGet =
true
, ResponseFormat = ResponseFormat.Json)]
public
string
HelloWorld()
{
JavaScriptSerializer js =
new
JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType =
"application/json"
;
Models.HelloWorldData data =
new
Models.HelloWorldData();
data.Message =
"HelloWorld"
;
data.Name =
"MicJackson"
;
return
js.Serialize(data);
}
[WebMethod]
[ScriptMethod(UseHttpGet =
false
, ResponseFormat = ResponseFormat.Json)]
public
void
GetClass(
int
fenshu)
{
JavaScriptSerializer js =
new
JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType =
"application/json"
;
Models.HelloWorldData data =
new
Models.HelloWorldData();
if
(fenshu > 90)
{
data.Message =
"优异"
;
data.Name =
"语文"
;
}
else
if
(fenshu > 80)
{
data.Message =
"良好"
;
data.Name =
"语文"
;
}
else
if
(fenshu > 60)
{
data.Message =
"及格"
;
data.Name =
"语文"
;
}
else
{
data.Message =
"不及格"
;
data.Name =
"语文"
;
}
HttpRequest Request = HttpContext.Current.Request;
string
callback = Request[
"jsonp"
];
Context.Response.Write(callback +
"("
+ js.Serialize(data) +
")"
);
Context.Response.End();
//return js.Serialize(data);
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<
html
>
<
head
>
<
script
src
=
"jquery-1.11.1.min.js"
type
=
"text/javascript"
></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
function callbackjsp(result){
alert("Message:"+result.Message + ",Name:"+result.Name);
}
$(document).ready(function(){
$.ajax({
url: "http://localhost:53568/WebService.asmx/GetClass",
type: "GET",
dataType: "jsonp",
jsonp: "jsonp", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpCallback: "callbackjsp", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
data: { fenshu: 93 },
success: function (json) {
alert("success:" + json.Message);
},
error: function (x, e) {
//alert("error:" + x.responseText);
},
complete: function (x) {
//alert("complete:" + x.responseText);
}
});
});
</
script
>
</
body
>
</
html
>
|