我的解决方案包含两个 asp.net MVC 项目。一个是 Web 服务,另一个是普通网站,从前面提到的 Web 服务获取数据。
我的网络服务主控制器中有以下方法:
...
public JSONResult GetTeacher(){
return JSON(new {TeacherName = this.teacher.name });
}
我正在尝试使用此 $.ajax 方法从其他 Web 应用程序(将成为网站)访问此方法:
$.ajax({
type: 'GET',
url: 'localhost:11370/Home/GetTeacher',
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(JSON.stringify(response));
$('#results').html('Welcome, ' + response.Name);
},
error: function (error) {
alert(JSON.stringify(error));
}
});
当我开始调试我的解决方案时,它会打开两个 Web 开发服务器,它们都在不同的端口上。结果,当 $.ajax 调用发生时,我会收到一个包含以下信息的弹出窗口:
the page at localhost:11510 says:
"readystate":0, "responsetext": "" , "status":0, "statustext":"error"
当我尝试直接在 google chrome 控制台中运行脚本时,我收到以下消息:
XMLHttpRequest cannot load http://localhost:11370/Home/GetTeacher.
Origin http://localhost:11510 is not allowed by Access-Control-Allow-Origin.
任何有关如何使用 $.ajax 实际访问该方法的帮助将不胜感激。
编辑:我还尝试制作一个简单的 html 文件,看看如果我调用网络服务会发生什么。结果相同。此外,当我只输入该方法的 url 时,它可以正常工作并显示老师的姓名。