我有一个简单的WebMethod
,如下所示
[WebMethod(EnableSession=true)]
public static string Redirect()
{
object a= HttpContext.Current.Session;
return "yeppieee";
}
并将其称为
this.http.get(`http://localhost/MyApp/Pages/TestPage.aspx/Redirect`)
.map(res=>res)
.subscribe((res) =>{
console.log(res);
},
(err)=>console.log(err),
()=>console.log("Done1111111111")
);
但调试器没有击中。
在控制台上我可以看到Done1111111111
。
在开发者工具的网络标签中,我可以看到此请求的状态为200
,即OK
。
那么为什么WebMethod
没有被调用?
修改
刚才知道响应是整个html页面。我可以在控制台中看到它。
答案 0 :(得分:0)
好的,我设法解决了这个问题。因为它返回整个页面html,我只是将内容类型作为json添加到请求标题中,如下所示。
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.get(`http://localhost/HelixWebApp/Pages/AngularContainer.aspx/Redirect`, options)
.map(res=>res.json())
.subscribe((res) =>{
console.log(res);
},
(err)=>console.log(err),
()=>console.log("Done")
);
还更改了WebMethod
以接受GET
[WebMethod(EnableSession=true)]
[ScriptMethod(UseHttpGet = true)]
public static string Redirect()
{
object a= HttpContext.Current.Session;
return "yeppieee";
}