我在Visual Studio中创建了一个名为' MyProject '的项目,并在其中添加了名为' MyPage.aspx 的.aspx文件'
在' MyPage.aspx.cs '中,有一种网络方法,如下所示
[WebMethod(EnableSession=true)]
public static string GetDetails()
{
try
{
var data= HttpContext.Current.Session["mySession"] as myDto;
return myDto.Username;
}
catch
{
return "Sorry";
}
}
现在,我在名为&#39; NewProject &#39;的同一解决方案中创建了另一个项目。 我在这个项目中有一个页面&#39; NewPage.aspx &#39;,我试图从&#39; MyPage.aspx <中调用GetDetails() /强>&#39; (MyProject的)。
所以我尝试了以下代码。
NewPage.aspx
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: 'Get',
url: 'http://localhost:2463/MyPage.aspx/GetDetails',
success: function (data) {
alert(data);
},
error: function (response) {
alert('Error');
}
})
});
</script>
但网络方法并未受到影响。我得到了错误&#39;警报显示。
我也尝试过这个
$(document).ready(function () {
$.ajax({
type: "POST",
url: "http://localhost:2463/MyPage.aspx/GetDetails",
contentType: "application/json; charset=utf-8",
data: '{}',
datatype: "json",
success: function (msg) {
alert('success');
},
error: function (response) {
alert('Error');
}
});
});
</script>
但没有运气。
Plz帮助...... !!
答案 0 :(得分:1)
听起来像是一个CORS问题。
默认情况下,您无法访问不在原始域(方案,主机名,端口)内的服务。
答案 1 :(得分:1)
在进行jquery ajax调用时,您必须确保链接http://localhost:2463/MyPage.aspx/GetDetails可用。为了那个原因 您可以在VS的单独实例中运行MyProject,然后在另一个VS实例中运行NewProject。
答案 2 :(得分:0)
检查inspect元素中的控制台并找到给定错误的解决方案。 您可以调用另一个页面的webMethod。你的代码似乎是对的。 而且无需编写整个网址(&#39; http://localhost:2463/MyPage.aspx/GetDetails&#39;),只需写下“MyPage.aspx / GetDetails&#39 ;.